如何将值相乘并获得正确的数字?

时间:2018-07-12 20:40:03

标签: java

我遇到了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 距离我的需求还很远。

0 个答案:

没有答案