我有这段代码舍入了一些值。我使用Math.Round()来实现相同的功能。
double h = 128.015999031067;
double d = Math.Round(h, 3) * 1000;
结果是128015.99999999999
如果我将其编写为控制台,它将给我128016
。我希望该值为128016
我是否缺少任何类型转换?还是有其他方法可以做到这一点?
答案 0 :(得分:8)
128.016
不能完全用二进制表示。乘以128016
就不可能得到1000
。
有多种解决方法:
decimal
。答案 1 :(得分:0)
您是否尝试过在不使用任何其他参数的情况下使用round函数?
double h = 128.015999031067;
double d = Math.Round(h*1000);