Wie Mantisse Präzision Überlauf in GMP, bevor oder nachdem es passiert, erkennen?
Frage
Die Frage I bedeutet bitten, die Mantisse betroffen, nicht die " „Ziffern auf der Summe von zwei negativen Schwimmern fehlen.
Da die Mantisse eine variable Präzision hat, wie kann man sagen, wenn man die aktuelle Präzision Einstellung der Mantisse übergelaufen ist? Oder von der proaktiven Seite, wie kann man sagen, wenn Mantisse Präzision Überlauf wahrscheinlich ist?
Mit freundlichen Grüßen, Bruce.
Lösung
Es gibt ein paar numerischen Methoden, um zu sehen, ob Sie Präzision verlieren werden, aber das Endergebnis ist, dass Sie die Definition von Präzision besser verstehen müssen.
-4939600281397002,2812
und
-4939600281397002,2812000000000000
ist nicht die gleiche Anzahl.
Wenn Sie fügen
-2234,6016114467412141
und
-4939600281397002,2812
zusammen, die richtig Ausgang wird nur 20 Stellen an Präzision, da die zusätzlichen 12 Stellen in der kleineren Zahl bedeutungslos gegeben sind, dass die 12 ähnlich großen Ziffern in der größeren Zahl sind unbekannt . Sie können bedeuten, dass sie Null sind, aber wenn das der Fall ist, dann müssen Sie erklären ausdrücklich, sich als solche zu sein, und ein Nummerierungssystem verwenden, das damit umgehen kann -. Der Computer an Verständnis implizite Absichten nicht gut ist
Was Erkennen, wenn Sie dieses Problem haben werden, alles, was Sie tun müssen, ist herauszufinden, ob sie den gleichen Exponenten (unter der Annahme einer normalisierten Mantisse +/- 1 oder ähnliche binäre Äquivalent) haben. Wenn sie nicht normalisiert sind, dann werden Sie brauchen, um sie zu normalisieren zu vergleichen oder einen etwas komplexeren Vergleich mit dem Exponenten verwenden.
Präzision und Genauigkeit ist nicht die gleiche Sache ...
-Adam