Pb avec double

Pb avec double - Java - Programmation

Marsh Posté le 24-11-2005 à 15:21:22    


En java, l'addition de deux "double" me fait ça (avec ces valeurs seulement)
 

Code :
  1. double v1=0.2;
  2. double v2=2.35;
  3. print(v1+v2);
  4. 2.5500000000000003


 
 
 [:spamafote]

Reply

Marsh Posté le 24-11-2005 à 15:21:22   

Reply

Marsh Posté le 24-11-2005 à 15:35:20    

Reply

Marsh Posté le 24-11-2005 à 15:41:39    

j'irais même jusqu'à lier le PDF de l'article originel, parce que la version HTML est pas très lisible.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 24-11-2005 à 17:53:18    

c'est sur que c'est dû à l'approximation des double

Reply

Marsh Posté le 24-11-2005 à 19:02:08    

Non.
 
C'est dû à la représentation physique des doubles en mémoire selon la norme IEEE754 [:aloy]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 24-11-2005 à 20:03:45    

masklinn a écrit :

Non.
 
C'est dû à la représentation physique des doubles en mémoire selon la norme IEEE754 [:aloy]


Quoi, l'illisibilité de la version HTML ?    [:pingouino]  
 
Dingue. [:dawa]


---------------
Now Playing: {SYNTAX ERROR AT LINE 1210}
Reply

Marsh Posté le 25-11-2005 à 07:34:57    

masklinn a écrit :

Non.
 
C'est dû à la représentation physique des doubles en mémoire selon la norme IEEE754 [:aloy]


 
C'est ce que je dit.  Cette représentation physique constitue une approximation.

Message cité 1 fois
Message édité par Pfv3 le 25-11-2005 à 07:35:25
Reply

Marsh Posté le 25-11-2005 à 11:00:43    

Pfv3 a écrit :

C'est ce que je dit.  Cette représentation physique constitue une approximation.


Non


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 25-11-2005 à 16:16:00    

et comment je fais moi ?
 
pour le moment, j'arrondis avec un String et je repasse en double !

Reply

Marsh Posté le 25-11-2005 à 20:41:39    


 
 
 
Oui, elle constitue une approximation. Essaye ceci :
 
        double x = 0.0060708090405056;
        System.out.println(x);
        -->0.0060708090405056  C'est correct
 
Maintenant essaye :  
 
        double x = 1777777777770.0060708090405056;
        System.out.println(x);
        --> 1.777777777770006E12     Il y a bien une approximation....Je viens de perdre des décimables
 
 

Reply

Marsh Posté le 25-11-2005 à 20:41:39   

Reply

Marsh Posté le 25-11-2005 à 21:38:36    

Pfv3 a écrit :

Oui, elle constitue une approximation.


T'es gentil, tu vas lire le Goldberg merci [:dawa]


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box, and replicate and expand beyond their wildest dreams by throwing away the limits imposed by overbearing genetic r
Reply

Marsh Posté le 26-11-2005 à 05:35:19    

masklinn a écrit :

T'es gentil, tu vas lire le Goldberg merci [:dawa]


 
J'ai dit "Cette représentation physique constitue une approximation."  
 
Tu as répondu "Non".
 
Je vais te montré que tu as tort de dire ceci par une phrase de Golberg lui-même :
 
"Squeezing infinitely many real numbers into a finite number of bits requires an APPROXIMATE REPRESENTATION."
 
Maintenant si tu veux toujours me contredire, tu iras dire à cet auteur qu'il a tort maintenant de dire que la représentation des doubles est une approximation.  :)

Message cité 1 fois
Message édité par Pfv3 le 26-11-2005 à 05:51:33
Reply

Marsh Posté le 26-11-2005 à 11:48:37    

Pfv3 a écrit :

Maintenant si tu veux toujours me contredire, tu iras dire à cet auteur qu'il a tort maintenant de dire que la représentation des doubles est une approximation.  :)


Tout dépend de quel référentiel tu parles ...


Message édité par benou le 26-11-2005 à 11:49:44

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 26-11-2005 à 11:51:45    

le tout est de passer d'une représentation à une autre. Et sur un nombre de "chiffres" donnés, tu ne peux pas forcément représenter toutes les valeurs d'une représentation dans une autre.
 
PS : println() n'affiche pas la valeur exacte du double, mais une représentation sur un nombre de caractères réduits => tu ne peux pas te baser dessus pour connaître la valeur de ton double


Message édité par benou le 26-11-2005 à 11:53:16

---------------
ma vie, mon oeuvre - HomePlayer
Reply

Marsh Posté le 26-11-2005 à 17:14:14    

De toute façon certains nombre décimaux, ne sont pas être exprimé de manière exact en base 10. Pareil pour le binaire(base 2)

Reply

Marsh Posté le 26-11-2005 à 18:58:21    

phnatomass a écrit :

De toute façon certains nombre décimaux, ne sont pas être exprimé de manière exact en base 10


pas définition, si :)
c'est les nombres réels qui ne peuvent pas être exprimés en nombres décimaux ;)


---------------
ma vie, mon oeuvre - HomePlayer
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed