Lorsque vous utilisez Oracle Database, vous pouvez utiliser des fonctions telles que TO_CHAR(number)
pour renvoyer des nombres sous forme de chaîne, formatée avec deux décimales (ou le nombre de décimales dont vous avez besoin).
Ou vous pouvez utiliser des fonctions comme ROUND(number)
et TRUNC(number)
pour arrondir ou tronquer le nombre au nombre de décimales requis.
Le TO_CHAR()
Fonction
Voici un exemple qui utilise le TO_CHAR(number)
fonction :
SELECT TO_CHAR(1.2345, 'fm99D00')
FROM DUAL;
Résultat :
1.23
Dans ce cas, le nombre d'origine a plus de deux décimales, et donc le résultat le tronque simplement au nombre spécifié de zéros qui suivent le caractère décimal/radix (D
) dans le modèle de format.
La raison pour laquelle j'ai utilisé des zéros après le caractère décimal est de fournir des zéros à la fin si nécessaire.
Exemple :
SELECT TO_CHAR(7, 'fm99D00')
FROM DUAL;
Résultat :
7.00
Si je ne veux pas les zéros de fin, je peux changer le 0
caractères à 9
s.
Voici une comparaison des deux :
SELECT
TO_CHAR(7, 'fm99D00') AS "r1",
TO_CHAR(7, 'fm99D99') AS "r2"
FROM DUAL;
Résultat :
r1 r2 _______ _____ 7.00 7.
Utilisation de 9
s dans ce cas, a donné un caractère de base, mais pas de décimales.
Je dois souligner que fm
est un modificateur de format qui supprime tout rembourrage pouvant être appliqué au résultat. Vous pouvez omettre cela si cela ne vous dérange pas que le résultat soit rembourré. Bien que, si vous faites cela, vous pourriez vous retrouver avec des zéros à la fin, même en utilisant le 9
élément de format.
Voici ce qui se passe lorsque je supprime le fm
de l'exemple précédent :
SELECT
TO_CHAR(7, '99D00') AS "r1",
TO_CHAR(7, '99D99') AS "r2"
FROM DUAL;
Résultat :
r1 r2 _________ _________ 7.00 7.00
Bien sûr, vous n'êtes pas limité à deux décimales ; vous pouvez spécifier plus de décimales dans votre modèle de format si nécessaire.
Exemple :
SELECT TO_CHAR(7, 'fm99D0000')
FROM DUAL;
Résultat :
7.0000
Le ROUND()
Fonction
Voici un exemple qui utilise le ROUND(number)
fonction :
SELECT ROUND(1.2573, 2)
FROM DUAL;
Résultat :
1.26
Tle ROUND()
La fonction arrondit un nombre à une décimale donnée. Ici, nous avons spécifié deux décimales, mais nous aurions pu spécifier n'importe quel nombre.
Dans ce cas, le nombre a été arrondi.
Le TRUNC()
Fonction
Voici un exemple qui utilise le TRUNC(number)
fonction :
SELECT TRUNC(1.2573, 2)
FROM DUAL;
Résultat :
1.25
Le TRUNC()
fonction tronque un nombre à une décimale donnée. Aucun arrondi ne se produit.