Arithmetische Präzision mit Doppel in Matlab

Ich habe ein wenig Probleme zu verstehen, wie sich die Genauigkeit dieser Doppeln auf das Ergebnis von arithmetischen Operationen in Matlab auswirkt. Ich dachte, da beide a & b doppelt sind, könnten sie Operationen mit dieser Genauigkeit ausführen. Mir ist klar, dass es Rundungsfehler geben kann, aber da diese Zahlen innerhalb der 64-Bit-Zahlendarstellung liegen, hätte ich nicht gedacht, dass dies ein Problem sein könnte.

a = 1.22e-45
b = 1
a == 0
   ans = 0  %a is not equal to zero
(a + b) == 1
   ans = 1

Wie kommt es, dass es in der Lage ist, genug Präzision zu haben, um ein! = 0 zu erkennen, aber wenn es zu 1 addiert wird, zeigt es keine Änderung.

Antworten auf die Frage(6)

Ihre Antwort auf die Frage