VB.NET中的Mod结果不正确

时间:2016-12-01 07:14:05

标签: vb.net

我在VB.NET中得到错误的 Mod 运算符结果。我用计算器验证了结果,它给出了正确的结果。

例如在VB.NET中1.3 Mod 0.05 = 0.049999999999999975而在计算器中显示0

1 个答案:

答案 0 :(得分:3)

向上舍入错误:

1.30000000000001 Mod 0.05 == 0.00000000000001 
1.2999999        Mod 0.05 == 0.0499998999999999

通常,向上舍入错误很少(如果有)令人讨厌,在不连续点处/附近放置小错误导致结果差异很大(在这种情况下为0.05)。

修正案:将最初的double更改为intlong

130 Mod 5 == 0 

decimal

1.3M Mod 0.05M == 0