Supprimer les zéros inutiles lors du select d'un decimal

Bonjour à tous,

Je viens vers vous car j’ai un petit souci que je n’arrive pas à résoudre. C’est pourtant simple, mais j’ai eu beau chercher un bon bout de temps, j’ai rien trouvé de simple.

Donc, lorsque je fais un :
SELECT 0.02000;

J’ai en retour :
0.02000

Normal, me direz-vous, je suis bien d’accord, seulement il me faudrait uniquement :
0.02

Donc en gros, je voudrais supprimer les zéros inutiles (l’origine viens d’un SELECT sur un type DECIMAL, mais j’ai simplifié la requête ci-dessus).

Si quelqu’un sait comment réaliser cette petite chose facilement directement depuis la requête MySQL, je lui en serais très reconnaissant :D.

Merci d’avance,
Nico

Fonctions mathématique de MySQL ?

J’ai regardé en long, en large et en travers là dedans, mais j’ai rien trouvé d’intéressant :/.

Et la fonction d’arrondi ROUND() ??

Ca pose aussi problème car pour une même colonne on peut avoir 1, 2, 3 voir 4 chiffres après la virgule …

Bon alors cherche du côté des fonctions de chaînes (voire tu détectes la position du dernier caractère, en partant de la droite, différent de “0” et tu supprime la portion à droite).

C’est ton type DECIMAL qui doit t’imposer le format fixe
As-tu essayé d’afficher le résultat en float (avec CONVERT, mais je ne me rappelle plus exactement la syntaxe) ?

En effet, c’est bien là le problème :D.

Sinon, j’ai essayé le CONVERT et le CAST, mais le résultat n’est pas vraiment à la hauteur des espérances :D.

Merci bien pour vos idées, mais j’ai l’impression qu’il va falloir que je fasse autrement car y’a vraiment pas l’air d’avoir grand chose dans MySQL pour faire ce dont j’ai besoin ;).

number_format()

Tu devrais trouver ton bonheur ici… une véritable mine d’or la doc PHP ! A utiliser sans modération :wink:

Et un (float) $row['valeur] en PHP ? Parce que PHP doit lire ta valeur comme une chaîne pour ne pas la convertir.

Trunc