Pb avec double - Java - Programmation
Marsh Posté le 24-11-2005 à 15:35:20
un début de réponse ?
http://docs.sun.com/source/806-3568/ncg_goldberg.html
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.
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
Marsh Posté le 24-11-2005 à 20:03:45
masklinn a écrit : Non. |
Quoi, l'illisibilité de la version HTML ?
Dingue.
Marsh Posté le 25-11-2005 à 07:34:57
masklinn a écrit : Non. |
C'est ce que je dit. Cette représentation physique constitue une approximation.
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
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 !
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
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
Marsh Posté le 26-11-2005 à 05:35:19
masklinn a écrit : T'es gentil, tu vas lire le Goldberg merci |
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.
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 ...
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
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)
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
Marsh Posté le 24-11-2005 à 15:21:22
En java, l'addition de deux "double" me fait ça (avec ces valeurs seulement)