以下のコードを見て、最終結果に逸脱がある理由を説明してください。違いは、2番目の計算での括弧の導入であることに注意してください。ありがとう!
コード:
DECLARE @A decimal(38,19) = 7958011.98
DECLARE @B decimal(38,19) = 10409029441
DECLARE @C decimal(38,19) = 10000000000
DECLARE @Z1 decimal(38,19)
DECLARE @Z2 decimal(38,19)
SET @Z1 = @A * @B / @C
SET @Z2 = @A * (@B / @C)
SELECT @Z1 AS [Correct],
@Z2 AS [Wrong]
結果:
Correct = 8283518.0991650000000000000
Wrong = 8283510.5860060000000000000