我遇到了Java问题,希望您能帮帮我...
鉴于我有以下Java代码
Double floatValue = 595.18;
System.out.println(floatValue * 1.75);
输出为:1041.5649999999998
当我使用Windows计算器进行相同的操作(595.18 * 1,75)时,我得到的值为1.041,565。
我有一个应用程序,在该应用程序中我必须将excel的结果与此操作进行比较(如上述操作),并且出现错误消息,指出值不匹配,但这是因为java计算错误的方式。当我将excel公式中的值格式设置为2个十进制数时,它会四舍五入为1.041,57(鉴于我使用HALF_UP
并将它四舍五入为565到57,这是正确的)但是当我将java计算的值四舍五入时(上面的输出)将其舍入为1.041,56,因此结果不相等。
我应该如何解决这个问题?当我四舍五入数字时,我需要595.18 * 1.75的java输出为1.041,57。有人可以帮我吗?
编辑:
我尝试使用BigDecimal
Double v1 = 595.18;
Double mult = 1.75;
BigDecimal bgd1 = new BigDecimal(v1);
BigDecimal bgd2 = new BigDecimal(mult);
BigDecimal result = bgd1.multiply(bgd2);
System.out.println(result);
以下代码输出:1041.564999999999912461134954355657100677490234375 距离我的需求还很远。