L'énigme de la notation scientifique de PHP
En PHP, vous pouvez rencontrer un comportement inattendu lors de la gestion des nombres décimaux. Comme le démontre l'extrait de code ci-dessous, spécifier un nombre avec un point décimal ne garantit pas qu'il sera imprimé dans le format souhaité :
<?PHP $var = .000021; echo $var; ?>
Étonnamment, le résultat de ce code est "2.1E- 5" au lieu du ".000021" attendu. Cette notation scientifique est souvent indésirable lorsque l'on travaille avec des valeurs numériques précises.
La raison derrière la notation scientifique
PHP représente en interne les nombres en utilisant l'arithmétique à virgule flottante. Lorsqu'un nombre comporte de nombreux zéros à droite, PHP utilise par défaut la notation scientifique pour maintenir la précision et éviter les arrondis inexacts. Dans ce cas, ".000021" comporte cinq zéros à droite, ce qui conduit à l'utilisation de la notation scientifique.
Surmonter la notation scientifique
Pour éviter la notation scientifique, vous pouvez utiliser la fonction number_format() :
print number_format($var, 5);
Ici, l'argument "5" précise le nombre de décimales à conserver. Cette fonction affichera ".000021" comme prévu.
De plus, vous pouvez envisager d'utiliser sprintf() pour contrôler le format de sortie :
printf("%.5f", $var);
Cette approche garantit également que le numéro est imprimé avec cinq décimales.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!