Debugging einige Finanz-SQL-Code gefunden ein seltsames Problem mit numerischen (24,8) Mathematik Genauigkeit.SQL Server 2005 numerische Genauigkeit Verlust
die folgende Abfrage auf Ihrem MSSQL Laufen Sie A + B * C Ausdruck Ergebnis erhalten würde 0,123457
SELECT A, B, C, A + B * C VON ( SELECT CAST sein (0.12345678 als numerisches (24,8)) als A, CAST (0 AS ZIFFERN (24,8)) als B, CAST (500 AS ZIFFERN (24,8)) als C ) T
So Wir haben 2 signifikante Symbole verloren. Versucht man, dies auf verschiedene Arten zu fixieren, bekam ich die Umwandlung des Zwischenergebnisses (welches Null ist!) Zu numerisch (24,8).
Und schließlich eine Lösung haben. Aber ich habe noch eine Frage - warum MSSQL auf diese Weise verhält und welche Typumwandlungen tatsächlich in meiner Probe vorkamen?
meinst du NUMERIC (32,6)) ?? Wenn die Summe muss 38 – Edmondo1984
@ Edmondo1984 Bitte lesen Sie die Links und verstehen, was beide Zahlen bedeuten. –
Sie sagen, dass der Server versuchen wird, 16 Bits zu speichern und eine (32,6) zu erzeugen, wenn man zwei Zahlen (24,8) multipliziert, wie wird es ein 38,6?Danke – Edmondo1984