Ich habe ein wenig Mühe zu verstehen, wie die Genauigkeit dieser Doppelpunkte das Ergebnis arithmetischer Operationen in Matlab beeinflusst. Ich dachte, da beide & b Doppel sind, wären sie in der Lage, Operationen bis zu dieser Genauigkeit auszuführen. Ich weiß, dass es Rundungsfehler geben kann, aber da diese Zahlen gut innerhalb der 64-Bit-Zahl Darstellung sind, dachte ich nicht, dass das ein Problem wäre.Arithmetische Präzision mit Doppel in Matlab
a = 1.22e-45
b = 1
a == 0
ans = 0 %a is not equal to zero
(a + b) == 1
ans = 1
Wie kommt es in der Lage ist, genug Präzision zu tragen zu erkennen a! = 0, aber wenn es auf 1 hinzugefügt hat es keine Veränderung zeigen.
Ich denke, die Mantisse hat 52 Bits (11 Bits für den Exponenten, plus 1 Bit für das Zeichen insgesamt 64-Bit). Ein ausgezeichneter Artikel von * Cleve Moler * (Autor der 1. Version von MATLAB) erklärt alle Details von Fließkommazahlen: [PDF link] http://www.mathworks.com/company/newsletters/news_notes/pdf/Fall96Cleve. pdf – Amro
@Amro: Es gibt ein impliziertes führendes "1" Bit, außer die Zahl ist denormalisiert. Also hat Jim in den meisten Fällen recht (und natürlich für diese Zahlen). –
Danke. Ich habe immer noch einen Weg, die Zahlenrepräsentation in Computern zu verstehen. – ZuluForce