据我所知,当舍入数为 5 时,根据数学舍入应该如下工作。
2.435 => 2.44 (Round Up, if rounding to digit(3) is odd number)
2.445 => 2.44 (Round Down, if rounding to digit(4) is even number)
如果我们做总结一切都很好,
2.435 + 2.445 = 4.88
2.44 + 2.44 = 4.88
我很确定在.Net中也可以像这样进行舍入。
但在 SQL Server 中,5 总是向上取整,根据数学计算是不正确的。
SELECT round(2.345, 2) = 2.35
SELECT round(2.335, 2) => 2.34
这导致四舍五入值的总和有 1 美分的差异。
2.345 + 2.335 = 4.68
2.35 + 2.34 = 4.69 => which is not correct
我已经尝试过使用小数和货币数据类型。
难道我做错了什么?有解决办法吗?