Das erwischt mich jetzt am falschen Fuß:
Dass das da
Code:
select 12/100*0.5
select 0.5/100*12
nicht dasselbe Ergebnis hat, verstehe ich ja noch.
Aber dass das auch nicht dasselbe Ergebnis hat
Code:
select 0.1*(12/100*0.5)
select 0.1*(0.5/100*12)
hätte ich nicht erwartet.
Wieso nicht? Wenn der Ausdruck in der Klammer schon nicht gleich ist (siehe oben), wieso soll es dann gleich werden wenn Du beides mit der gleichen Konstanten multiplizierst?
Computer rechnen binär und mit einer limitierten Zahl von Bits pro Variablen. Sowohl die Konvertierung Dezimal nach Binär als auch die Operatione selbst haben deshalb kleine Abweichungen vom mathematisch exakten Ergebnis, weshalb auch das Kommunitativgesetz nicht strikt erfüllt ist: das Ergebnis ist abhängig von der Reihenfolge, in der mathematische Operationen ausgeführt werden.