Microsoft SQL Server Express 2016 を使用してストアド プロシージャを作成しています。要件の 1 つは、丸めを行うことです。しかし、時々、丸めが間違っています。T-SQL の丸めは C# とまったく同じではないことがわかりましたが、なぜですか?
以下の 2 つの丸めを比較します。
In T-SQL: ROUND(0.045, 2) --> this will produce 0.05
In C#: Math.Round(0.045, 2) --> this will produce 0.04
なぜ C# は 0.04 を生成するのですか? 0.05じゃないの?
C# の丸め = T-SQL の丸めを行うにはどうすればよいですか?
好奇心から、C# でこれを試しました。
Math.Round(0.055, 2)
C# が何に丸められたと思いますか? 0.06に丸めました!今、私は完全に混乱しています!
Math.Round(0.045, 2) // This becomes 0.04
Math.Round(0.055, 2) // This becomes 0.06
説明は何ですか?