Ao usar o Oracle Database, você pode usar funções como
TO_CHAR(number) para retornar números como uma string, formatada com duas casas decimais (ou quantas casas decimais você precisar). Ou você pode usar funções como
ROUND(number) e TRUNC(number) para arredondar ou truncar o número para o número necessário de casas decimais. O TO_CHAR() Função
Aqui está um exemplo que usa o
TO_CHAR(number) função:SELECT TO_CHAR(1.2345, 'fm99D00')
FROM DUAL; Resultado:
1.23
Neste caso, o número original tem mais de duas casas decimais e, portanto, o resultado simplesmente o trunca para o número especificado de zeros que segue o caractere decimal/radix (
D ) no modelo de formato. A razão pela qual usei zeros após o caractere decimal é fornecer zeros à direita, se necessário.
Exemplo:
SELECT TO_CHAR(7, 'fm99D00')
FROM DUAL; Resultado:
7.00
Se eu não quiser os zeros à direita, posso alterar o
0 caracteres para 9 s. Aqui está uma comparação dos dois:
SELECT
TO_CHAR(7, 'fm99D00') AS "r1",
TO_CHAR(7, 'fm99D99') AS "r2"
FROM DUAL; Resultado:
r1 r2 _______ _____ 7.00 7.
Usando
9 s neste caso, resultou em um caractere de base, mas sem casas decimais. Devo salientar que
fm é um modificador de formato que remove qualquer preenchimento que possa ser aplicado ao resultado. Você pode omitir isso se não se importar que o resultado seja preenchido. Embora, se você fizer isso, poderá acabar com zeros à direita, mesmo ao usar o 9 elemento de formato. Aqui está o que acontece quando eu removo o
fm do exemplo anterior:SELECT
TO_CHAR(7, '99D00') AS "r1",
TO_CHAR(7, '99D99') AS "r2"
FROM DUAL; Resultado:
r1 r2 _________ _________ 7.00 7.00
Claro, você não está limitado apenas a duas casas decimais – você pode especificar mais casas decimais em seu modelo de formato, se necessário.
Exemplo:
SELECT TO_CHAR(7, 'fm99D0000')
FROM DUAL; Resultado:
7.0000
O ROUND() Função
Aqui está um exemplo que usa o
ROUND(number) função:SELECT ROUND(1.2573, 2)
FROM DUAL; Resultado:
1.26
Tele
ROUND() função arredonda um número para uma determinada casa decimal. Aqui, especificamos duas casas decimais, mas poderíamos ter especificado qualquer número. Neste caso, o número foi arredondado para cima.
O TRUNC() Função
Aqui está um exemplo que usa o
TRUNC(number) função:SELECT TRUNC(1.2573, 2)
FROM DUAL; Resultado:
1.25
O
TRUNC() função trunca um número para uma determinada casa decimal. Não ocorre arredondamento.