d'addition en php[Résolu] [Problème] - PHP - Programmation
Marsh Posté le 27-11-2008 à 11:37:51
Bienvenue dans le petit monde des opérations sur les floats...t'as jamais étudié la représentation des flottants en binaire?
Marsh Posté le 27-11-2008 à 11:39:03
http://forum.hardware.fr/hfr/Progr [...] 3398_1.htm
Marsh Posté le 27-11-2008 à 11:43:29
L'éternel problème des floats !
C'est un problème de codage des nombres réels.
Jette un coup d'oeil ici : http://fr2.php.net/float
edit:
Marsh Posté le 27-11-2008 à 11:43:30
http://docs.sun.com/source/806-3568/ncg_goldberg.html
houba houba hop
Marsh Posté le 27-11-2008 à 12:18:39
Très intéressant vos liens et j'ai résolut mon problème grâce à l'extension PHP bcmath
merci all
code
Code :
|
Marsh Posté le 27-11-2008 à 11:34:19
Hello all ,
C'est la première foi que je poste sur un forum à cause d'un problème en développement
J'ai toujours pu trouver sur la toile des réponses a mes questions .
Mais la j'ai un problème vraiment étrange sur un simple additions, enfin simple pas tant que ça mais dans le fond oui
Dans mon programme je fait une requête qui me récupère entre 10k et 100k de résultat
Dans une boucle ou je stock mes résultats dans un fichier j'additionne une valeur pour qu'a la fin de la boucle j'ai un total de cette même valeur
(Exemple) table avec x champ donc un champ est : prix HT , je veux additionné ses prix pour avoir le total
Et la c'est le drame
Tous ce passe bien pour 80% de mes calculs et j'ai 20% ou le résultat est une aberration
voici une des xK lignes d'un echo de debug
6.11+-6.43 = -0.32 ( Jusqu'ici tout va bien)
et au bout de x ligne comme celle la ou tous ce passe bien j'ai une ligne :
6.11+-6.11 = -1.7763568394E-15 alors que le résultat devrai être égal a 0
le délire continu
-1.7763568394E-15+6.43 = 6.43 (ici on vois bien que -1.7763568394E-15 + x = x comme si -1.7763568394E-15 = 0)
6.43+-6.43 = -1.7763568394E-15
je ne comprends plus rien
information supplémentaire :
system : php5 + debian
sgbd : oracle
Après un var_dump(de ma variable) je vois un string.
Je force mes variables avec (float) même résultat.
petit bout de code
ma boucle for
.
.
.
.
.
.
fin de ma boucle for
j'espère avoir été assez clair dans mon explication .
need help
Message édité par romain_92 le 27-11-2008 à 12:24:22