Si vous voulez la valeur jusqu'aux millièmes mais pas plus de la partie décimale, vous pouvez multiplier par 1000 et soit FLOOR
ou utilisez TRUNC
. Comme ceci :
SELECT TO_CHAR( TRUNC( value * 1000 ), '00000009' )
FROM table_name;
ou :
SELECT LPAD( TRUNC( value * 1000 ), 8, '0' )
FROM table_name;
Utilisation de TO_CHAR
n'autorisera qu'un nombre maximum de chiffres défini en fonction du masque de format (si la valeur dépasse cette taille, elle affichera #
s au lieu de nombres) mais il gérera les nombres négatifs (en plaçant le signe moins avant les zéros non significatifs).
Utilisation de LPAD
autorisera n'importe quelle taille d'entrée, mais si l'entrée est négative, le signe moins sera au milieu de la chaîne (après tous les zéros non significatifs).