Je me demande si j'ai trouvé un problème avec l'arrondi en PHP, plus précisément 5.2.3 (je ne suis pas sûr d'autres versions pour le moment):
printf('%.18F', 5.000 / 100 * 0.7);
3 Réponses :
Python dit:
>>> repr(5./100*0.7) '0.034999999999999996'
Une idée s'il y a un moyen de l'obtenir dans PHP?
printf ('%. 18f', 5.000 / 100 * 0,7); code>
Vous pouvez utiliser php_round_half_up, mais il y a un problème que le numéro se transforme en soi à "99999 ..." P>
Les flotteurs sont diaboliques. strong> p>
citating the Documentation manuelle PHP sur Numéros de points flottants em> : P>
Ne faites jamais confiance aux résultats du numéro flottant au dernier chiffre et ne comparez jamais les numéros de points flottants pour l'égalité. Si une précision supérieure est nécessaire, le Fonctions mathématiques de précision arbitraires et Les fonctions GMP sont disponibles. P>
blockQuote>
Si vous voulez savoir pourquoi et comment les floats fonctionnent, je vous recommande de regarder:
Tout ce que vous ne voulez pas savoir sur les numéros JavaScript P>
Merci, fini par utiliser les fonctions mathématiques de la BC.