Drei Felder einer Tabelle werden multipliziert in einer Stored Procedure. Da es Float-Felder sind werden die Werte per cast( as numeric(15,2))im Select auf 2 Nachkommastellen gerundet vor dem Multiplizieren (damit der Wert 20,450004567 als 20,45 verwendet wird). Soweit so gut. Die Rechnung 1 * 2,5 * 20,45 ergibt als Ergebnis 51,125. Dieses Ergebnis in einer Variablen vom Wert Numeric(15,2) gespeichert ergibt 51,13. Wenn ich mich nicht irre sollte aber laut Rundungsregel 51,12 rauskommen. Gibt es eine Grund dafür bzw. kann ich etwas dagegen tun?
Gruß Andreas
Gruß Andreas
Comment