Könnte jemand erklären, was im folgenden SQL-Code passiert?Verstehen Sie nicht Rundung Verhalten in SQL Server bei der Verwendung von Division Operator
declare @dividend numeric (38,22)
declare @divisor numeric (38,22)
declare @otherDivisor int
set @dividend = 1
set @divisor = 3
set @otherDivisor = 3
select Besetzung (@dividend/@divisor als numerische (38,22)), @dividend/@otherDivisor
Das Ergebnis zurückgegeben wird
0,3333330000000000000000 0,3333333333333333333333
Ich würde für beide Berechnungen dasselbe Ergebnis erwarten.
Ihnen sehr für die Antwort danken. Ist Ihnen bewusst, wie Sie dieses Verhalten umgehen können? – ralf
@Ralf: Es folgt normalen mathematischen Regeln, genau wie die Multiplikation von Dezimalstellen im wirklichen Leben (2dp x 3 dp ergibt 6 dp). Float kann besser sein, auf Kosten einiger Genauigkeit ... – gbn