probleme avec les variables float

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : probleme avec les variables float

Re: probleme avec les variables float

par raiden7 » 05 juin 2012, 17:43

merci pour le conseil l'ami

Re: probleme avec les variables float

par sirakawa » 05 juin 2012, 16:47

en utilisant le type decimal de Mysql

Re: probleme avec les variables float

par Mazarini » 05 juin 2012, 14:54

Ce n'est pas possible. C'est le passage du mode décimale au mode binaire qui veux ca.
Tu remarqueras qu'avec 2 décimales, tu gardes le même résultat.

Eventuellement, tu peux travailler en centime pour échapper au problème.

Re: probleme avec les variables float

par raiden7 » 05 juin 2012, 14:06

merci pour votre explication, mais comment eviter cela??

Re: probleme avec les variables float

par Ryle » 05 juin 2012, 13:52

Les types float et double qui permettent de gérer des nombres décimaux, impliquent une notion de précisions des valeurs qu'ils traitent. Lorsque tu veux stocker un nombre réel dans un champ comprenant un nombre limité de chiffres, il est nécessaire pour le système de calculer une approximation de la valeur d'origine.
Tu peux donc te retrouver avec un écart entre le nombre d'origine et la valeur stockée ; écart plus ou moins proche de la décimale selon la précision gérée.

probleme avec les variables float

par raiden7 » 05 juin 2012, 11:59

Bonjour tout le monde, j'ai un grand grand probleme que j'arrive pas a résoudre ni a comprendre l'origine, voila je je procede au calcule des taux comme $x=(54400/70000)*100 , je passe le resultat avec numeber_format($x, 2, ',' , ' '), je l'enregistre sur une table mysql dont le champ est de type Float mais l'orsque j'extrait le resultat j'ai un $y=77.7699966430664 alors que meme avec une calculatrice (54400/70000)*100=77.7714....
alors pourquoi le resultat change????!!!!!!!!!