Maison  >  Article  >  développement back-end  >  Transfert d'opération de numéro à virgule flottante PHP vers un problème int

Transfert d'opération de numéro à virgule flottante PHP vers un problème int

coldplay.xixi
coldplay.xixioriginal
2020-07-13 10:50:092924parcourir

L'opération flottante des nombres à virgule flottante PHP est convertie en type entier : les nombres à virgule flottante en PHP sont des types faibles pour les entiers ou les nombres à virgule flottante dont le résultat est un entier après l'opération, PHP peut les traiter comme des entiers. est [intval(round (floatval($value) * 100))].

Transfert d'opération de numéro à virgule flottante PHP vers un problème int

Opération flottante de nombre à virgule flottante PHP en entier de type int :

Exécutez ce code :

$f = 0.58;
var_dump(intval($f * 100.0));

Peut-être pensez-vous qu'il produira 58, mais en fait il en produira 57.
La raison est qu'en tant que données à virgule flottante, une partie de leur précision a été perdue et elles ne peuvent pas être complètement exactes. Ne vous fiez donc jamais à l’exactitude du résultat d’un nombre à virgule flottante jusqu’au dernier chiffre et ne comparez jamais l’égalité de deux nombres à virgule flottante.

Les nombres à virgule flottante en PHP sont faiblement typés. Pour les entiers ou les nombres à virgule flottante dont le résultat après opération est un entier, PHP peut les traiter comme des entiers, mais le type reste inchangé. Mais s'il ne s'agit pas d'un entier après l'opération, alors PHP traitera le résultat comme un nombre à virgule flottante strict

En développement réel, nous pouvons utiliser la logique suivante pour résoudre cette situation

intval(round(floatval($value) * 100));

Recommandations d'apprentissage associées : Programmation PHP de l'entrée à la maîtrise

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn