Bonjour ,
Pourquoi quand je fais, j'obtiens 542.0 et non 542 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT 10 * 54.2
Merci d'avance
Bonjour ,
Pourquoi quand je fais, j'obtiens 542.0 et non 542 ?
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT 10 * 54.2
Merci d'avance
bonjour,
ceci est une problématique client.
le type retourné par cette opération est un decimal(X,1) du coup le client que vous utilisez affiche cette valeur.
Là j'étais sous pgadmin .
Si j'ai bien compris (mais je crois que non ) vous me dites que si j'utilise un autre client je pourrais avoir un autre résultat ?
J'ai essayé en lançant psql sur le serveur et j'obtiens aussi un zéro à droite.
Le client peut influer sur l'affichage, mais je dirai que vous multipliez un entier par un decimal, et que le résultat est le plus précis des deux.
Si vous ne voulez pas le zéro, vous pouvez forcer le type :
Code : Sélectionner tout - Visualiser dans une fenêtre à part SELECT (10 * 54.2)::integer
En fait au départ ma valeur peut avoir un nombre variable de décimales.
J'ai fait comme cela :C'est-à-dire quand c'est un entier , je multiplie par 10.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 CASE WHEN mavaleur = ROUND(mavaleur) THEN 10 * mavaleur ELSE LEFT((10*mavaleur)::text,LENGTH((10*mavaleur)::text) - 1)::numeric END
Sinon je multiplie par 10 et j'enlève le 0 à droite en passant par du texte.
Je ne sais pas si on peut éviter de passer par du texte.
Partager