Page 1 sur 1

Affichage de nombres très petits

Posté : 05 juin 2009, 13:47
par Sebast076
Bonjour,

j'ai un petit souci avec l'affichage de nombre tel que 0.00001 avec du php.

voici mon code :
$i = $aDonnees2['nombre'];
$i = ( $i * 100 / 3000000000 );
echo $i = round( $i, 5 );


mon souci est qu'avec ce code ma page va m'afficher 1.0E-5 comme résultat.

j'ai essayé de la manière suivante :
echo number_format($i, 5, ',', ' ');


la la page m'affiche bien les 5 chiffres après la virgule, mais lorsque le résultat donne un chiffre 'rond' (10 par exemple), cela m'affiche 10,00000.

Il y a t'il un moyen de contourner ce problème pour afficher les nombre entier sans virgule ?

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 05 juin 2009, 13:54
par albat
Tu voudrais que :
10,00000 s'affiche 10
10,00001 s'affiche 10,00001

C'est ça ?

Posté : 05 juin 2009, 13:59
par Sebast076
oui c'est ça

[Note : ce message a été posté de manière anonyme avant d'être réattribué à son auteur]

Posté : 05 juin 2009, 14:06
par albat
$nombre_à_afficher = number_format($nombre, (($nombre==round($nombre)) ? 0 : 5));

Posté : 05 juin 2009, 14:11
par Sebast076
ça marche nikel merci pour la réponse rapide :)

Posté : 05 juin 2009, 14:14
par albat
Petite précision :
avec cette simple petite fonction, 10,01 s'affichera 10,01000

ok ?

Posté : 05 juin 2009, 14:15
par Sebast076
ok, il n'ya pas moyen de virer les 0 superflu ?

Posté : 05 juin 2009, 14:25
par albat
Allez, j'suis dans mon bon jour : c'est cadeau ! ;)
number_format($nombre, round(abs(log10($nombre-floor($nombre)))))
Et voilà pour tester :
$valeurs = array (1, 1.1, 1.01, 1.001, 1.0001, 1.00001, 1.000001, 1.0000001);
foreach ($valeurs AS $nombre)
        echo number_format($nombre, round(abs(log10($nombre-floor($nombre)))))."<br />"; 

Posté : 05 juin 2009, 14:26
par Berzemus
Sinon, sans lire la solution d'albat, j'ai ceci


123456789

Mais on peut faire plus petit encore:

123456789

Posté : 05 juin 2009, 14:29
par albat
123456789 hagné ! :langue:

Posté : 05 juin 2009, 14:30
par Sebast076
merci beaucoup ^^