W PostgreSQL funkcja ceiling()
funkcja służy do zaokrąglania liczby w górę do najbliższej liczby całkowitej.
Jest podobny do round()
, ale tylko zaokrągla w górę. round()
funkcja zaokrągli w górę lub w razie potrzeby.
Jest również podobny do floor()
, z wyjątkiem tego, że floor()
zaokrągla w dół zamiast w górę.
Składnia
ceiling()
funkcja może być używana na jeden z następujących sposobów:
ceil(dp or numeric)
ceiling(dp or numeric)
Gdzie dp
wskazuje double precision
.
Typ zwracany jest taki sam jak typ wejściowy.
Obie składnie działają dokładnie tak samo. Pierwsza składnia to po prostu bardziej zwięzły sposób na zrobienie tego.
Przykład
Oto przykład demonstrujący jego użycie.
SELECT ceiling(12.10);
Wynik:
13
W tym przypadku ułamki sekund wynoszą 10, a liczba jest zaokrąglana w górę do najbliższej liczby całkowitej.
To chyba oczywiste, ale jeśli zwiększę ułamki sekund do 50, to i tak zaokrągli to w górę.
SELECT ceiling(12.70);
Wynik:
13
Liczby ujemne
Oto przykład, który używa liczb ujemnych.
SELECT
ceiling(-12.10),
ceiling(-12.90);
Wynik:
ceiling | ceiling ---------+--------- -12 | -12
Sufit() kontra sufit()
Jak wspomniano, ceil()
i ceiling()
są równoważne.
Oto przykład, który pokazuje obie składnie obok siebie.
SELECT
ceil(12.10),
ceiling(12.10);
Wynik:
ceil | ceiling ------+--------- 13 | 13
Ceiling() kontra Round()
Gdybym używał round()
, 12.10
wartość zostałaby zaokrąglona w dół (ponieważ ułamki sekund to mniej niż 50).
Oto przykład ilustrujący różnicę między ceiling()
i round()
.
SELECT
ceiling(12.10),
round(12.10);
Wynik:
ceiling | round ---------+------- 13 | 12
Jeśli jednak zwiększę ułamki sekund do 50, obie zwracają ten sam wynik.
SELECT
ceiling(12.50),
round(12.50);
Wynik:
ceiling | round ---------+------- 13 | 13
Ceiling() a Floor()
Postgres ma również funkcję floor()
funkcja, która jest podobna do ceiling()
poza tym, że zawsze zaokrągla liczbę w dół .
Oto przykład, który pokazuje obie składnie obok siebie.
SELECT
ceiling(12.80),
floor(12.80);
Wynik:
ceiling | floor ---------+------- 13 | 12
A oto przykład, który używa wartości ujemnych.
SELECT
ceiling(-12.30),
floor(-12.30);
Wynik:
ceiling | floor ---------+------- -12 | -13