V PostgreSQL je to ceiling()
Funkce se používá pro zaokrouhlení čísla nahoru na nejbližší celé číslo.
Je to podobné jako round()
, kromě toho, že se pouze zaokrouhluje nahoru. round()
funkce se zaokrouhlí nahoru nebo dolů podle potřeby.
Je také podobný floor()
, kromě floor()
zaokrouhluje dolů místo nahoru.
Syntaxe
ceiling()
funkci lze použít jedním z následujících způsobů:
ceil(dp or numeric)
ceiling(dp or numeric)
Kde dp
označuje double precision
.
Návratový typ je stejný jako vstupní typ.
Obě syntaxe fungují úplně stejně. První syntaxe je jednoduše stručnější způsob, jak to udělat.
Příklad
Zde je příklad, který demonstruje jeho použití.
SELECT ceiling(12.10);
Výsledek:
13
V tomto případě jsou zlomkové sekundy 10 a číslo je zaokrouhleno nahoru na nejbližší celé číslo.
Asi je to samozřejmé, ale když zvětším zlomkové sekundy na 50, pořád to zaokrouhlí nahoru.
SELECT ceiling(12.70);
Výsledek:
13
Záporná čísla
Zde je příklad, který používá záporná čísla.
SELECT
ceiling(-12.10),
ceiling(-12.90);
Výsledek:
ceiling | ceiling ---------+--------- -12 | -12
Ceil() vs. Ceiling()
Jak již bylo zmíněno, ceil()
a ceiling()
jsou ekvivalentní.
Zde je příklad, který ukazuje obě syntaxe vedle sebe.
SELECT
ceil(12.10),
ceiling(12.10);
Výsledek:
ceil | ceiling ------+--------- 13 | 13
Ceiling() vs. Round()
Pokud bych používal round()
, 12.10
hodnota by byla zaokrouhlena dolů (protože zlomkové sekundy jsou menší než 50).
Zde je příklad, který ilustruje rozdíl mezi ceiling()
a round()
.
SELECT
ceiling(12.10),
round(12.10);
Výsledek:
ceiling | round ---------+------- 13 | 12
Pokud však zvýším zlomkové sekundy na 50, obě vrátí stejný výsledek.
SELECT
ceiling(12.50),
round(12.50);
Výsledek:
ceiling | round ---------+------- 13 | 13
Ceiling() vs Floor()
Postgres má také floor()
funkce, která je podobná funkci ceiling()
kromě toho, že vždy zaokrouhlí číslo dolů .
Zde je příklad, který ukazuje obě syntaxe vedle sebe.
SELECT
ceiling(12.80),
floor(12.80);
Výsledek:
ceiling | floor ---------+------- 13 | 12
A zde je příklad, který používá záporné hodnoty.
SELECT
ceiling(-12.30),
floor(-12.30);
Výsledek:
ceiling | floor ---------+------- -12 | -13