java中的乘法错误?

时间:2014-07-03 04:51:47

标签: java multiplication

因此,我使用这行代码返回参数值的10%。例如,如果给出的值是7,则代码应返回0.7。但它正在返回0.7000000000000001。有什么想法?代码如下:

    public double calculateDiscount(double price){
        double discount;
        discount = price*0.10;
        return discount;
    }

我使用eclipse IDE,并且使用调试,我没有发现任何奇怪的东西,乘法只是返回那么大的数字。

PS:我知道我只能返回两个十进制的情况,但我想知道发生了什么。

PPS:使用/ 10代替* 0.10可以正常工作。但是,正如我所说,我想知道原因。

1 个答案:

答案 0 :(得分:0)

如果你真的关心精确度,可能你想使用java.math.BigDecimal

How to Use Java BigDecimal: A Tutorial中查看更多内容。