<分区>
Possible Duplicate:
Moving decimal places over in a double
为什么下面的数字总和不等于 0.4622
?但是 0.46219999999999994
Double total = new Double(0.08) + new Double(0.0491) + new Double(0.3218) +
new Double(0.0113) + new Double(0.0); // = 0.46219999999999994
我有一个检查用户输入的应用程序。
用户输入 5 个小数和一个总数。应用程序检查 komma 后 4 位小数的所有 5 个数字的总和是否等于总数。
封顶它给我 0.4621
这不等于 0.4622
。我不能使用 DecimalFormat,因为它会四舍五入。如果我明确地说,向下舍入,那么在这种情况下它将失败。
关于如何解决这个问题有什么建议吗?