双值除法结果不正确
Incorrect division result with double value
我做除法时遇到问题。我有这段代码,其中此操作必须是 40.4239
,但我得到的结果是:0.005595493389623997
我可以理解小数位数,我必须用 decimalFormat 来解决这个问题,但我无法理解这个结果...
在这种情况下,contTotal 是 288975
,所以:(288975/714861)*100 = 40.4239
有什么想法...?
int contTotal = 0;
double result = 0;
for(DoubleWritable val : valores) {
contTotal += val.get();
}
result = (contTotal/714861) *100;
你可以这样做:
double z = (288975.0/714861.0)*100.0;
不知道这是否有帮助,但看起来您确实做了两次除法,因为 (40.423/714861)*100
实际上是 0.005595493389623997
。
我肯定会检查一下。
我做除法时遇到问题。我有这段代码,其中此操作必须是 40.4239
,但我得到的结果是:0.005595493389623997
我可以理解小数位数,我必须用 decimalFormat 来解决这个问题,但我无法理解这个结果...
在这种情况下,contTotal 是 288975
,所以:(288975/714861)*100 = 40.4239
有什么想法...?
int contTotal = 0;
double result = 0;
for(DoubleWritable val : valores) {
contTotal += val.get();
}
result = (contTotal/714861) *100;
你可以这样做:
double z = (288975.0/714861.0)*100.0;
不知道这是否有帮助,但看起来您确实做了两次除法,因为 (40.423/714861)*100
实际上是 0.005595493389623997
。
我肯定会检查一下。