No PostgreSQL, o
trunc()
função trunca um número. Mais especificamente, ele trunca o número para zero ou para um número específico de casas decimais.
Sintaxe
O
trunc()
A função pode ser usada de uma das seguintes maneiras:trunc(dp or numeric)
trunc(v numeric, s int)
A primeira sintaxe trunca o número em direção a zero.
A segunda sintaxe o trunca para um número especificado de casas decimais. Nesse caso,
v
é o número e s
é o número de casas decimais. Exemplo da primeira sintaxe
Aqui está um exemplo que usa a primeira sintaxe.
SELECT trunc(342.49);
Resultado:
342
Exemplo de segunda sintaxe
Aqui está um exemplo que usa a segunda sintaxe.
SELECT trunc(342.49, 1);
Resultado:
342.4
Adicionando segundos fracionários
Aqui está um exemplo de especificação de um número de casas decimais quando o número não inclui nenhuma.
SELECT trunc(342, 3);
Resultado:
342.000
Números negativos
Aqui está um exemplo que usa um número negativo.
SELECT round(-4.5);
Resultado:
-5
Casas decimais negativas
Aqui está o que acontece quando o segundo argumento é um valor negativo.
SELECT trunc(342, -2);
Resultado:
300
Trunc() vs Round()
Em alguns casos, o
trunc()
a função pode parecer funcionar de maneira semelhante a round()
. Mas são funções bem diferentes. A
round()
função arredonda o número. O número é arredondado para o inteiro mais próximo ou para o número especificado de casas decimais (dependendo se você fornecer um argumento ou dois argumentos). O
trunc()
Por outro lado, a função simplesmente trunca o número para zero ou para a casa decimal especificada. Nenhum arredondamento é realizado. Aqui está um exemplo para demonstrar a diferença.
SELECT
round(342.49, 1),
trunc(342.49, 1);
Resultado:
round | trunc -------+------- 342.5 | 342.4