No PostgreSQL, o
floor()
A função é usada para arredondar um número para baixo para o inteiro mais próximo. É basicamente o oposto de
ceiling()
, que arredonda um número para cima . Também é semelhante a
round()
, exceto que ele só arredonda para baixo. A round()
função irá arredondar para cima ou para baixo conforme necessário. Sintaxe
A sintaxe fica assim:
floor(dp or numeric)
Onde
dp
indica double precision
. O tipo de retorno é o mesmo que o tipo de entrada.
Exemplo
Aqui está um exemplo para demonstrar seu uso.
SELECT floor(3.99);
Resultado:
3
Nesse caso, os segundos fracionários são 99 e o número é arredondado para o inteiro mais próximo.
Não surpreendentemente, obtenho o mesmo resultado se diminuir os segundos fracionários para dizer, 15.
SELECT floor(3.15);
Resultado:
3
Números negativos
Aqui está um exemplo que usa números negativos.
SELECT
floor(-3.99),
floor(-3.15);
Resultado:
floor | floor -------+------- -4 | -4
Andar() vs Redondo()
Aqui está um exemplo que ilustra a diferença entre
floor()
e round()
. SELECT
floor(3.99),
round(3.99);
Resultado:
floor | round -------+------- 3 | 4
No entanto, se eu diminuir os segundos fracionários para menos de 50, ambos retornarão o mesmo resultado.
SELECT
floor(3.49),
round(3.49);
Resultado:
floor | round -------+------- 3 | 3
Andar() vs Teto()
Postgres também tem um
ceiling()
função, que é semelhante a floor()
exceto que sempre arredonda o número para cima . 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