|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre régulier
![]() Inscription : mai 2004 Messages : 121 ![]() |
Bonjour à tous,
J'explique le contexte. J'avais une fonction qui permettait de faire des calculs banals avec des "double" positifs. Jusque la, aucun soucis. Maintenant je dois gérer les nombres négatifs. Normalement, le code était prévu pour sauf que : Méga surprise, selon PHP: echo 360 + (-360.45); retourne -0.44999999999999 au lieu de -0.45 quelqu'un a t'il déjà eu ce cas la et comment avez vous corriger ce "bug" ? PS : Je ne souhaite pas utiliser round(), je souhaite que, par exemple, 360 reste 360 et non 360.00. Merci par avance |
|
|
00
|
|
|
#2 |
|
Membre confirmé
![]() |
Pourquoi ne pas utiliser round() et ensuite number_format() ??
__________________
Le contenu est roi, optimisé il est empereur... Comme la Hongrie, le monde informatique a une langue qui lui est propre. Mais il y a une différence. Si vous restez assez longtemps avec des Hongrois, vous finirez bien par comprendre de quoi ils parlent. http://www.tethis-interactive.com |
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() ![]() Inscription : janvier 2004 Messages : 1 238 ![]() |
En effet... ca fait peur ;o)
selon la doc ca peut pourtant arriver... http://fr2.php.net/manual/fr/language.types.float.php mais bon, ton cas montre vraiment qu'il ne faut pas se fier aux nombres décimaux avec php... Apparement, la seule solution est d'utiliser les API faites pour manipuler "réellement" les nombres décimaux (et du coup, de grande taille). Heureusement, elles sont chargées par defaut dans toute configuration php... malheureusement, ca veux dire qu'il faudrait modifier tout ton code... http://fr2.php.net/manual/fr/ref.bc.php depuis la 5.1.0 sous windows : http://fr2.php.net/manual/fr/ref.gmp.php |
|
|
00
|
|
|
#4 |
|
Membre régulier
![]() Inscription : mai 2004 Messages : 121 ![]() |
ok, merci pour vos reponses, je vais etudier quelle solution je vais appliquer.
Merci et bon week end |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com