SQL server 2005 numerische Präzision Verlust

Debuggen einige Finanz-bezogene SQL-code gefunden, der ein seltsames Problem mit numerischen(24,8) Mathematik Präzision.

Ausführen der folgenden Abfrage auf Ihre MSSQL, Sie würden Holen Sie sich A + B * C-Ausdruck Ergebnis 0.123457

WÄHLEN SIE EIN,
B,
C,
A + B * C
AUS
(
SELECT CAST(0.12345678 ALS NUMERIC(24,8)) ALS,
CAST(0 AS NUMERIC(24,8)) WIE B,
CAST(500, DIE ALS NUMERISCHE(24,8)) ALS C
) T

So dass wir verloren haben 2 bedeutende Symbole. Versuchen, um dieses Problem in unterschiedlicher Weise bekam ich, dass die Umstellung von der Mittelstufe Multiplikation Ergebnis (die Null!) numeric (24,8) würde funktionieren.

Und schließlich eine Lösung habe. Aber ich hace eine Frage - warum MSSQL so verhält und welche Umbauten tatsächlich bewahrheitet in meinem Beispiel?

Schreibe einen Kommentar