Eclipse在尝试计算两个浮点数之和时给出错误的结果。
在我的代码中,有2个浮点变量:float from = 0.025
和float to = 1
。
然后结果具有双变量:double value = 7 * from / to
。
Eclipse编译器显示:value = 0.174999997019767760
在excel计算器中,此结果为value = 0.175
我该如何解决这个问题?
答案 0 :(得分:0)
这仅仅是因为您的Java程序没有像excel计算器一样对结果进行四舍五入。这是计算机处理浮点运算的方式的结果。您有两种选择:将结果取整,或使用java BigDecimal
类。如果要舍入结果,可以使用:
float from = 0.025f;
float to = 1;
double value = 7 * from / to;
DecimalFormat ds = new DecimalFormat("#.###");
double rounded = Double.parseDouble(ds.format(value));
System.out.println(rounded);
如果您不想舍入,可以使用BigDecimal
类。
Java BigDecimal