web-dev-qa-db-fra.com

Convertir float en chaîne en php?

Comme:

float (1.2345678901235E + 19) => chaîne (20) "12345678901234567890"

Cela peut-il être fait?

(c'est pour json_decode ...)

19
tweety
echo number_format($float,0,'.','');

note: ceci est pour les entiers, augmentez 0 pour les chiffres fractionnaires supplémentaires

39
Karoly Horvath
$float = 0.123;
$string = sprintf("%.3f", $float); // $string = "0.123";
7
lubart

Il s'avère que json_decode par défaut, convertit les grands entiers sous forme de flottants. Cette option peut être remplacée dans l'appel de fonction:

$json_array = json_decode($json_string, , , 1);

Je ne base cela que sur la documentation principale, alors testez-le et dites-moi si cela fonctionne.

2
Anthony

Un nombre en virgule flottante en double précision ne peut contenir qu’une quinzaine de chiffres significatifs. Le mieux que vous puissiez faire est de remplir les chiffres supplémentaires avec des zéros.

0
Alnitak