Einzelnen Beitrag anzeigen

peterbelow

Registriert seit: 12. Jan 2019
Ort: Hessen
672 Beiträge
 
Delphi 11 Alexandria
 
#2

AW: MS SQL Genauigkeit in der Termauswertung

  Alt 12. Jun 2019, 14:07
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.
Peter Below
  Mit Zitat antworten Zitat