PHP Convertir une Chaîne en un Float/Double
J'ai la liste de chaîne de caractères (taille en octets), j'ai lu ceux de fichier. Disons un de la chaîne est 2968789218, mais quand je la convertir en float-il devenu 2.00.
C'est mon code pour l'instant :
$string = "2968789218";
$float = (float)$string;
//$float = floatval($string);
//the result is same
//result 2.00
Quelqu'un?
Résolu
Le problème était en fait de l'encodage. C'est bien maintenant quand je change l'encodage du fichier 😀
Fonctionne très bien pour moi ?
C'est pas bien pour moi :'(
Avez-vous essayé (int), ou avez-vous réellement besoin d'un flotteur ?
C'est pas bien pour moi :'(
Avez-vous essayé (int), ou avez-vous réellement besoin d'un flotteur ?
(int)
dans système 32 bits va provoquer un débordement. La valeur maximum est de 2 147 483 647.OriginalL'auteur Bias Tegaralaga | 2013-05-12
Vous devez vous connecter pour publier un commentaire.
Étonnamment il n'y a pas de réponse. Le problème n'existe qu'en 32 bits PHP.
De la la documentation,
En d'autres termes, la
$string
est d'abord interprété comme INT, qui sont la cause de débordement (La$string
valeur 2968789218 dépasse la valeur maximale (PHP_INT_MAX
) de 32 bits PHP, qui est 2147483647.), ensuite évalués à flotteur par(float)
oufloatval()
.Ainsi, la solution est:
sorties:
Pour vérifier si votre PHP est 32 bits ou 64 bits, vous pouvez:
Si votre PHP est en version 64 bits, il permet d'imprimer
9223372036854775807
, sinon il va imprimer2147483647
.Il n'est pas entièrement clair. Est-il nécessaire de stocker l'
floatval
résultat dans une variable au lieu de le faire directement appel de la fonction dans le cadre d'echo?OriginalL'auteur
$float = floatval($string);
Ref : http://www.php.net/floatval
OriginalL'auteur
Essayez d'utiliser
Comment êtes-vous vérifier? Le
.00
regarde poisson.(double)
et(real)
ne pas vraiment exister en PHP, donc un casting pour ceux qui projettent de(float)
qui est exactement ce que l'OP est en train de faire..recherche ok à ma fin. ce que la plateforme que vous utilisez. Lire plus à propos de float.
Est-il quelque chose de mal avec mon serveur? J'utilise serveur gratuit de red hat OpenShift frodo-baggins.rhcloud.com/info.htm
OriginalL'auteur
Si la fonction floatval ne fonctionne pas, vous pouvez essayer ceci :
Mais pour moi la réponse précédente travaillé ( essayer dans http://writecodeonline.com/php/ )
Peut-être que le problème est sur votre serveur ?
OriginalL'auteur