Bonjour,
Je voudrais savoir comment transformer 0.055 en 00.055. Je sais qu'avec sprintf on peut faire cela mais je n'y arrive pas.
$sec=sprintf("%2.3f",0.055);
Merci de votre aide
Version imprimable
Bonjour,
Je voudrais savoir comment transformer 0.055 en 00.055. Je sais qu'avec sprintf on peut faire cela mais je n'y arrive pas.
$sec=sprintf("%2.3f",0.055);
Merci de votre aide
Avec les balises [ code ] et [ /code ], pour une meilleure lisibilité ;)Code:$sec=sprintf("%02.3f",0.055);
Désolé, mais cela ne marche pas.... :cry:
Une autre idée??
Si, ça marche très bien, à condition de ne pas se gourer :oops:Citation:
Envoyé par peuf23
c'est mieux ...Code:$sec=sprintf("%06.3f",0.055);
En fait, le chiffre qui suit le séparateur "." : 3 indique le nombre de décimales (la précision).
Le chiffre qui précède le séparateur (6 pour moi tu avais mis 2) indique la largeur minimale de la chaine résultante. Si tes décimales sont plus nombreuses que cela, elles sont ajoutées quand même. C'est pour cela que %2.3f sort bien 0.055.
Par contre, le 0 qui suit le % indique qu'il faut complèter à gauche avec des zéros. Cependant, on ne peut complèter à gauche que s'il reste de la place : 0.055 sorti en %02.3f s'affiche donc 0.055, faute de place, alors qu'en %06.3f, cela sort en 00.055 (0.055 occupe 5 positions, la 6e est alors complètée par un 0).
J'ai commis l'erreur de rajouter le 0 sans toutefois élargir le champ ... mais quand même, tenter de faire rentrer 3 décimales dans un champ de 2 positions, c'était chaud, non ? ;)
Oui, ca marche :D
... Et merci pour tes explications :wink: