C++ Ausdrücke

Kann mir jemand erklären, wieso für beliebige Fliesskommazahlen Folgendes gilt:

a + c * d + b == d * c + a + b ->true
a * b * c == c * b * a ->true
a + b + c == c + b + a -> not true

dabei sind a, b, c, d die einzelnen verschiedenen Fliesskommazahlen. Ich wäre sehr dankbar für eine Erklärung.
 
Aufgrund der begrenzten Anzahl signifikanter Stellen kommt es eventuell zur Auslöschung dieser. D.h. für die elementaren Rechenregeln, dass die Kommutativität der Addiation und Multiplikation erhalten bleibt, während die Assoziativität und Distributivität sowie die Eindeutigkeit der Zahl Null verloren gehen.
Für a + b + c == c + b + a kommt das Assoziativgesetz zum Tragen.
Bsp.:
a = 1e20
b = -1e20
c = 1
-> a+b+c=1, c+b+a=0 (die Zahl 1 ist keine signifikante Stelle von -1e20, folglich ist c+b =-1e20)
Bsp. mit Overflow:
a = -1,001e308
b = 1e308
c = 1,1e308
-> a+b+c = 1,099e308 und c+b+a = inf
 
Top