Comment détecter le dépassement de précision de la mantisse dans GMP, avant ou après?
Question
La question que je voulais dire concernait la mantisse et non le exponent , et a beaucoup à voir avec la question que j'ai posée plus tôt dans la semaine concernant " manquant " chiffres sur la somme de deux flottants négatifs.
Étant donné que la mantisse a une précision variable, comment savoir si on a dépassé le réglage de précision actuel de la mantisse? Ou, du côté proactif, comment savoir si un débordement de la précision de la mantisse est probable?
Cordialement, Bruce.
La solution
Il existe quelques méthodes numériques pour déterminer si vous allez perdre de la précision, mais le résultat final est que vous devez mieux comprendre la définition de la précision.
-4939600281397002.2812
et
-4939600281397002.2812000000000000
ne sont PAS le même nombre.
Lorsque vous ajoutez
-2234.6016114467412141
et
-4939600281397002.2812
ensemble, la sortie correcte n'aura que 20 chiffres de précision, car les 12 chiffres supplémentaires dans le plus petit nombre n'ont pas de sens étant donné que les 12 chiffres de taille similaire dans le plus grand nombre sont inconnus. . Vous pouvez en déduire qu'ils sont nuls, mais si c'est le cas, vous devez les déclarer explicitement comme tels et utiliser un système de numérotation capable de le gérer: l'ordinateur ne comprend pas bien les intentions implicites.
En ce qui concerne la détection du moment où vous allez avoir ce problème, il vous suffit de déterminer s’ils ont le même exposant (en supposant une mantisse normalisée +/- 1 ou un équivalent binaire similaire). S'ils ne sont pas normalisés, vous devrez les normaliser pour pouvoir les comparer ou utiliser une comparaison légèrement plus complexe avec l'exposant.
Précision et exactitude ne sont pas la même chose ...
-Adam