Jak napisać liczbę z dwoma miejscami po przecinku dla serwera sql?
sql
sql-server
decimal
number-formatting
Shiliang
źródło
źródło
Użyj
Str()
funkcji. Zajmuje trzy argumenty (liczbę, całkowitą liczbę wyświetlanych znaków i liczbę wyświetlanych miejsc dziesiętnychwyświetla: '12345.679' (3 spacje, 5 cyfr 12345, kropka dziesiętna i trzy cyfry dziesiętne (679). - zaokrągla, jeśli ma zostać obcięty, (chyba że część całkowita jest zbyt duża dla całkowitego rozmiaru, w takim przypadku zamiast tego wyświetlane są gwiazdki).
łącznie 12 znaków, z 3 po prawej stronie przecinka.
źródło
it rounds if it has to truncate
... chyba że część całkowita jest zbyt duża dla całkowitego rozmiaru, w takim przypadku zamiast tego wyświetlane są gwiazdki. Jest to wymienione w dokumentacji programuSTR
. Oto cytat z tej strony:STR(1223,2) truncates the result set to **.
Generalnie można zdefiniować dokładność liczby w języku SQL, definiując ją za pomocą parametrów. W większości przypadków będzie to
NUMERIC(10,2)
lubDecimal(10,2)
- zdefiniuje kolumnę jako liczbę zawierającą łącznie 10 cyfr z dokładnością do 2 (miejsca dziesiętne).Zmieniono dla jasności
źródło
To działa dla mnie i zawsze zachowuje ułamki dwucyfrowe
23,1 ==> 23,10
25,569 ==> 25,56
1 ==> 1,00
Zrzut ekranu z kodem
źródło
Oto jak robią to dzisiaj dzieci:
123,46
źródło
DECLARE @test DECIMAL(18,6) = 0.456789
potemSELECT FORMAT(@test, '##.##')
wraca:.46
Jak masz to, aby pokazać zero:0.46
?Jeśli potrzebujesz tylko dwóch miejsc po przecinku, najprostszym sposobem jest ...
LUB
Wynik
źródło
Jeśli możesz zaokrąglić liczbę zamiast skracać ją, to po prostu:
źródło
Spróbuj tego:
źródło
Pomnóż wartość, którą chcesz wstawić (np. 2,99) przez 100
Następnie wstaw podział wyniku przez 100, dodając 0,01 na koniec:
źródło
Umożliwi to łącznie 10 cyfr z 2 wartościami po przecinku. Oznacza to, że może pomieścić wartość przed przecinkiem do 8 cyfr i 2 po przecinku.
Aby sprawdzić poprawność, umieść wartość w następującym zapytaniu.
źródło