Einzelnen Beitrag anzeigen

Benutzerbild von Moombas
Moombas

Registriert seit: 22. Mär 2017
Ort: bei Flensburg
525 Beiträge
 
FreePascal / Lazarus
 
#4

AW: MS SQL Genauigkeit in der Termauswertung

  Alt 12. Jun 2019, 14:11
Also generell gilt normalerweise das die Positionen bei Punktrechnung beliebig tauschen kannst.

MS SQL scheint den "Bruch" (12/100 bzw. 0,5/100) nicht zu erkennen und zieht einfach die Punktrechnung vor. Daher bekommst du falsche und verschiedene Ergebnisse:

select 12/100*0.5 => 12/50 = 0.24
select 0.5/100*12 => 0.5/1200 = 0.00041666

Normalerweise wäre 0.06 das richtige Ergebnis.

bzw.

select 0.1*(12/100*0.5) => 0.1*(12/50) = 0.1*0.24 = 0.024
select 0.1*(0.5/100*12) => 0.1*(0.5/1200) = 0.1*0.00041666 = 0.000041666

Normalerweise wäre 0.006 das richtige Ergebnis.


Du müsstest also schreiben (ungetestet):

select (12/100)*0.5 => 0.12*0.5 = 0.06
select (0.5/100)*12 => 0.005*12 = 0.06

bzw.

select 0.1*(12/100)*0.5 = 0.006
select 0.1*(0.5/100)*12 = 0.006
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.

Geändert von Moombas (12. Jun 2019 um 14:20 Uhr)
  Mit Zitat antworten Zitat