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.


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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]


---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody
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