我使用下面的方法得到錯誤的結果。獲得錯誤的結果以評估100 * 2.55值
public double evaluate(final double leftOperand, final double rightOperand) {
Double rtnValue = new Double(leftOperand * rightOperand);
return rtnValue.doubleValue();
}
輸入參數值是:leftOperand = 100和rightOperand = 2.55
我得到錯誤的答案:254.99999999999997
正確的答案是一個255.0
強制性「什麼每臺計算機科學家應該知道關於浮點運算」 -link:http://docs.sun.com/source/806-3568/ncg_goldberg.html – Jacob 2012-07-31 10:11:02
*確切*值做些什麼你相信你的「2.55」的價值? – 2012-07-31 10:11:14
@JonSkeet:即使你知道2.55和100.0的確切值,答案也是錯的...... – 2012-07-31 10:17:06