Problème avec nombres décimaux : 1.2 -> 1.19999384148789 - Win NT/2K/XP - Windows & Software
Marsh Posté le 25-05-2003 à 16:06:22
J'imagine que ca a un rapport avec les "options régionales" (là où on choisit la monnaie, le format de la date...)
Marsh Posté le 25-05-2003 à 20:10:34
mrBebert a écrit : J'imagine que ca a un rapport avec les "options régionales" (là où on choisit la monnaie, le format de la date...) |
Ca viens pas de ça, déjà vérifié. Le plus étrange c'est que après formatage, ça fait pareil...
Marsh Posté le 25-05-2003 à 20:22:28
Féllicitations ! Tu viens de découvrir par toi même qu'un nombre décimal ne peut être représenté de manière exacte sur un processeur.
Un nombre décimal est représenté en mémoire par un nombre fini de bits, par conséquent une représentation exacte n'est pas possible. Seuls les entiers peuvent avoir une représentation exacte.
Les nombres décimaux sont représentés généralement sur 32, 94 voir 96 bits suivant la précision ou plage de valeurs souhaitée.
Toutefois la plus part du temps le nombre est arrondi à quelques décimales et la valeur est suffisament précise pourq ue même après plusieurs calculs l'erreur reste acceptable. Pourquoi tu n'as plus cet arrondi cela est un mystère
Marsh Posté le 25-05-2003 à 20:41:54
Merci, tu viens de me ré-apprendre ce que je sais déjà... enfin bon !
C'est clair que c'est mystérieux tout-ça... Et pis ça apparaît partout. Genre une animation Flash qui affiche le nombre d'octets déjà chargés souffre du même symptôme, sous excel, dans un logiciel de compta, parout... sauf la calculatrice windows qui est épargnée...
Marsh Posté le 25-05-2003 à 20:54:21
ReplyMarsh Posté le 25-05-2003 à 20:59:03
oops j'avais pas vu
je me suis dit : ordi de ta mère, donc vieux PC pour word et le solitaire
Marsh Posté le 25-05-2003 à 23:08:06
Requin a écrit : Féllicitations ! Tu viens de découvrir par toi même qu'un nombre décimal ne peut être représenté de manière exacte sur un processeur. |
Merci pour la leçon ! Mais pourquoi ça fait ça uniquement chez lui ?
Marsh Posté le 26-05-2003 à 00:45:10
Requin a écrit : Féllicitations ! Tu viens de découvrir par toi même qu'un nombre décimal ne peut être représenté de manière exacte sur un processeur. |
Menfin bon, le nombre "1.2" est parfaitement stockable tel quel en single precision fp sans arrondi aucun avec une précision de 2 (.12) pour la fraction et l'exposant=1. Si la précision requise dépasse la magnitude d'un nombre fp en 32 bits, alors là effectivement il y a des arrondis ...
Ton proc a un pb clairement avec les nombre en virgule flottante, il est sans doute défectueux pour 1 raison X ou Y
EDIT : j'ai mis en gras la partie erronée de ton post, ce n'est valable que pour les nombres flottants dont la magnitude depassé celle de l'unité de stockage (par exemple c'est 23 pour un 32 bits flottant)
D'autant plus que le terme "nombres décimaux" est plutôt incorrect, on utilise le terme de flottants.
Marsh Posté le 25-05-2003 à 15:49:05
C'est sur l'ordi de ma mère.
Partout où il y a des nombres décimaux, ils ne s'affichent pas bien : genre dans Excel, quand je tape 1.2, il s'affiche "1.19999384148789". Pareil dans Internet Explorer, quand je télécharge un truc, il m'écrit pas "460.7 Ko", mais "460.69999767887 Ko"...
J'ai formaté le bordel, tout réinstallé, mais ça ne change rien.
HEEEELP ! D'où ça vient ? Est-ce le processeur qu'est grillé (un XP2000+ qui tourne à 70° est étrange...) ?
Thanx !