0.5
ist eine (negative) Potenz von 2
, was bedeutet, dass es genau durch das IEEE-754 binäre Gleitkommaformat darstellbar ist. In Zeichengenauigkeit ist es 0'01111110'00000000000000000000000
.Können wir sagen, dass es immer wahr ist, dass 0,5 * x + 0,5 * x == x?
Basierend auf meinen Schnelltests mit deaktivierten Optimierungen (-O0
), stellt sich heraus, dass wenn y = 0.5 * x
, dann y + y == x
. Aber ist es immer durch den IEEE-754-Standard garantiert?
Ich weiß in der Regel, dass, wenn n
eine positive ganze Zahl Leistung von 2
und m = 1.0/n
, y = m * x
, dann y
zusammen n
mal Zugabe nicht x
erzeugt. Aber es scheint, dass mit n = 2
ja.
Vermisse ich etwas?
Mögliche Duplikate von [Ist Fließkomma-Mathematik gebrochen?] (Https://StackOverflow.com/Questions/588004/is-floating-point-math-broken) – mehulmpt
@Mehulmpt Diese Frage ist über '0,2 + 0,1! = 0.3', die seit '0.2' und' 0.1' durch kein binäres Fließkommaformat genau darstellbar sind, ist völlig offensichtlich. Ich denke du verstehst den Unterschied hier nicht. – plasmacel