获得错误的结果以评估100*2.55的值

bNd*_*bNd 5 java

我使用下面的方法得到了错误的结果.

public double evaluate(final double leftOperand, final double rightOperand) {
        Double rtnValue = new Double(leftOperand * rightOperand);
        return rtnValue.doubleValue();
    }
Run Code Online (Sandbox Code Playgroud)

输入参数值为:leftOperand = 100和rightOperand = 2.55

我得到了错误答案: 254.99999999999997

正确答案是255.0

Jig*_*shi 4

使用BigDecimal

BigDecimal bd = new BigDecimal("100");
BigDecimal ans = bd.multiple(new BigDecimal("2.55"));
System.out.println(ans);
Run Code Online (Sandbox Code Playgroud)

也可以看看