Addition in Java
本问题已经有最佳答案,请猛点这里访问。
正在调试一段代码,发现了这个奇怪的问题。
在添加两个双变量0.0040和0.0005时,Java将结果返回为"0.00×45万亿"。
这是我的密码:
1 2 3 4 5 6 |
产量:0.004500000000000005
如果变量"A"的值介于0.0041到0.0044之间,则输出正确。但是,如果我将变量"A"的值设为0.0045,则输出为"0.00499999999999"。
需要帮助!!
你可以用EDCOX1,0来完成Java中的浮点运算。
下面是一个例子:
1 2 3 | BigDecimal a = new BigDecimal("0.0040"); BigDecimal b = new BigDecimal("0.0005"); BigDecimal sum = a.add(b); |
还要注意,
这是因为浮点数,它们会失去精度,导致您看到的问题。宁可使用bigdecimal作为精度