我正在使用 Microsoft SQL Server Express 2016 编写存储过程。要求之一是进行四舍五入。但时不时地,四舍五入是错误的。我发现 T-SQL 舍入与 C# 并不完全相同,但为什么呢?
比较下面的两个舍入:
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
解释是什么?