No PostgreSQL, o
ceiling() A função é usada para arredondar um número até o inteiro mais próximo. É semelhante a
round() , exceto que ele só arredonda para cima. A round() função irá arredondar para cima ou para baixo conforme necessário. Também é semelhante a
floor() , exceto que floor() arredonda para baixo em vez de subir. Sintaxe
O
ceiling() A função pode ser usada de uma das seguintes maneiras:ceil(dp or numeric)
ceiling(dp or numeric) Onde
dp indica double precision . O tipo de retorno é o mesmo que o tipo de entrada.
Ambas as sintaxes funcionam exatamente da mesma forma. A primeira sintaxe é simplesmente uma maneira mais concisa de fazer isso.
Exemplo
Aqui está um exemplo para demonstrar seu uso.
SELECT ceiling(12.10); Resultado:
13
Nesse caso, os segundos fracionários são 10 e o número é arredondado para o inteiro mais próximo.
Provavelmente nem é preciso dizer, mas se eu aumentar os segundos fracionários para 50, ainda será arredondado.
SELECT ceiling(12.70); Resultado:
13
Números negativos
Aqui está um exemplo que usa números negativos.
SELECT
ceiling(-12.10),
ceiling(-12.90); Resultado:
ceiling | ceiling ---------+--------- -12 | -12
Teto() vs Teto()
Como mencionado,
ceil() e ceiling() são equivalentes. Aqui está um exemplo que mostra ambas as sintaxes lado a lado.
SELECT
ceil(12.10),
ceiling(12.10); Resultado:
ceil | ceiling ------+--------- 13 | 13
Teto() vs Redondo()
Se eu estivesse usando
round() , o 12.10 o valor teria sido arredondado para baixo (porque os segundos fracionários são menores que 50). Aqui está um exemplo que ilustra a diferença entre
ceiling() e round() . SELECT
ceiling(12.10),
round(12.10); Resultado:
ceiling | round ---------+------- 13 | 12
No entanto, se eu aumentar os segundos fracionários para 50, ambos retornarão o mesmo resultado.
SELECT
ceiling(12.50),
round(12.50); Resultado:
ceiling | round ---------+------- 13 | 13
Teto() vs Piso()
Postgres também tem um
floor() função, que é semelhante a ceiling() exceto que sempre arredonda o número para baixo . Aqui está um exemplo que mostra ambas as sintaxes lado a lado.
SELECT
ceiling(12.80),
floor(12.80); Resultado:
ceiling | floor ---------+------- 13 | 12
E aqui está um exemplo que usa valores negativos.
SELECT
ceiling(-12.30),
floor(-12.30); Resultado:
ceiling | floor ---------+------- -12 | -13