双值除法结果不正确

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。 我肯定会检查一下。