मुझे नीचे विधि का उपयोग कर गलत परिणाम मिल रहा है।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
अनिवार्य -लिंक "हर कंप्यूटर वैज्ञानिक के बारे में फ्लोटिंग प्वाइंट अंकगणित क्या पता होना चाहिए": http://docs.sun.com/source/806-3568/ncg_goldberg.html – Jacob
क्या * सटीक * मूल्य करना आपको विश्वास है कि "2.55" के आपके मूल्य में है? –
@ जोनस्केट: यहां तक कि यदि आप 2.55 और 100.0 दोनों के सटीक मूल्य को जानते हैं, तो भी जवाब गलत होगा ... –