W PostgreSQL trunc()
funkcja obcina liczbę.
Dokładniej, obcina liczbę do zera lub do określonej liczby miejsc dziesiętnych.
Składnia
trunc()
funkcja może być używana na jeden z następujących sposobów:
trunc(dp or numeric)
trunc(v numeric, s int)
Pierwsza składnia skraca liczbę do zera.
Druga składnia skraca go do określonej liczby miejsc dziesiętnych. W tym przypadku v
to liczba, a s
to liczba miejsc dziesiętnych.
Przykład pierwszej składni
Oto przykład, który używa pierwszej składni.
SELECT trunc(342.49);
Wynik:
342
Przykład drugiej składni
Oto przykład, który używa drugiej składni.
SELECT trunc(342.49, 1);
Wynik:
342.4
Dodawanie ułamków sekund
Oto przykład określenia liczby miejsc dziesiętnych, gdy liczba nie zawiera żadnego.
SELECT trunc(342, 3);
Wynik:
342.000
Liczby ujemne
Oto przykład z liczbą ujemną.
SELECT round(-4.5);
Wynik:
-5
Ujemne miejsca dziesiętne
Oto, co się dzieje, gdy drugi argument ma wartość ujemną.
SELECT trunc(342, -2);
Wynik:
300
Trunc() kontra Round()
W niektórych przypadkach trunc()
funkcja może wydawać się działać w podobny sposób do round()
. Ale są to zupełnie inne funkcje.
round()
funkcja zaokrągla liczbę. Liczba jest zaokrąglana do najbliższej liczby całkowitej lub do określonej liczby miejsc dziesiętnych (w zależności od tego, czy podasz jeden argument, czy dwa argumenty).
trunc()
z drugiej strony funkcja po prostu obcina liczbę do zera lub do określonego miejsca dziesiętnego. Żadne zaokrąglanie nie jest wykonywane.
Oto przykład pokazujący różnicę.
SELECT
round(342.49, 1),
trunc(342.49, 1);
Wynik:
round | trunc -------+------- 342.5 | 342.4