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