Einzelnen Beitrag anzeigen

Benutzerbild von Moombas
Moombas

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

AW: MS SQL Genauigkeit in der Termauswertung

  Alt 13. Jun 2019, 08:21
Interessant finde ich, das die Anzahl der Nachkommastellen im Ergebnis jedesmal der Summe der Nachkommastellen in der Rechnung Entspricht.
Nein, das ist nicht interessant, haben wir schon in der Schule gelernt: Wenn man zwei Zahlen mit Nachkommastellen multipliziert, so erhält man im Ergebnis soviele Nachkommastellen, wie die multiplizierten Zahlen zusammen enthalten.
Jaein, denn: Nimmst du 0,1*0,1 stimmt die Aussage (=0,01) ABER: nimmst du 0,1*1,0 wäre das korrekte Ergebnis 0,1 (die nachstehenden Nullen sind irrelevant, da 0,1 = 0,10).
Und warum das in DIESEM Fall durchaus interessant ist: Das Ergebnis der Rechnung wäre 0,006 (3 Nachkommastellen), wenn nun aber in der Rechnung (0.1 * (0.5 / 100 * 12)) nur 2 Nachkommastellen vorkommen und daher davon ausgegangen wird, das man nur 2 Nachkommastellen braucht ist das Ergebnis logischerweise Falsch!
Folglich müsste man generell mit der maximal möglichen Anzahl an Kommastellen rechnen um einigermaßen vernünftig rechnen zu können (und keine Angst haben muss, das dadurch Kommastellen schlichtweg gestrichen werden). Daher:
0.1 * (0.5 / 100 * 12) = 0.00
0.1 * (0.50 / 100 * 12) = 0.006 (?)

@Tigerlilly:
Du machst die Sache kompliziert, denn hier geht es um MS-SQL Server. DUAL gibt es für den nicht und wie ich beschrieben habe, sind die Ergebnisse andere:

select 12/100*0.5 --> 0
select 0.5/100*12 --> 0,06
Was ist denn das Ergebnis wenn du folgende Rechenoperationen ausführst:
select (12/100)*0.5 --> ?
select 12/100*0.50 --> ?
Der Weg ist das Ziel aber man sollte auf dem Weg niemals das Ziel aus den Augen verlieren.

Geändert von Moombas (13. Jun 2019 um 08:32 Uhr)
  Mit Zitat antworten Zitat