我在VB.NET中得到错误的 Mod 运算符结果。我用计算器验证了结果,它给出了正确的结果。
例如在VB.NET中1.3 Mod 0.05 = 0.049999999999999975
而在计算器中显示0
答案 0 :(得分:3)
向上舍入错误:
1.30000000000001 Mod 0.05 == 0.00000000000001
1.2999999 Mod 0.05 == 0.0499998999999999
通常,向上舍入错误很少(如果有)令人讨厌,在不连续点处/附近放置小错误导致结果差异很大(在这种情况下为0.05
)。
修正案:将最初的double
更改为int
(long
)
130 Mod 5 == 0
或decimal
:
1.3M Mod 0.05M == 0