पर विचार साधारण परीक्षण वर्ग:BigDecimal के बराबर होती है() compareTo() बनाम
import java.math.BigDecimal;
/**
* @author The Elite Gentleman
*
*/
public class Main {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
BigDecimal x = new BigDecimal("1");
BigDecimal y = new BigDecimal("1.00");
System.out.println(x.equals(y));
System.out.println(x.compareTo(y) == 0 ? "true": "false");
}
}
आप (होशपूर्वक) कह सकते हैं कि x
y
के बराबर है (संदर्भ आपत्ति नहीं है), लेकिन जब आप प्रोग्राम चलाने निम्न परिणाम दिखाता है:
false
true
प्रश्न: BigDecimal
में compareTo()
और equals()
के बीच अंतर यह है कि compareTo
निर्धारित कर सकते हैं कि x
equa है एल y
?
पीएस: मुझे लगता है कि BigDecimal विधि पर inflate()
विधि है। inflate()
वास्तव में क्या करता है?
विज्ञापन तुलना कर सकते हैं 'बढ़()': यह सार्वजनिक एपीआई का हिस्सा नहीं है क्योंकि यह केवल आंतरिक प्रतिनिधित्व manipulates और "बाहर" के लिए नहीं दिखाई प्रभाव पड़ता है। इसलिए जब तक कि आप वास्तव में 'BigDecimal' के गहराई से कार्यान्वयन का अध्ययन नहीं करना चाहते हैं, तो मैं सुझाव दूंगा कि आप इस विधि को अनदेखा करें। –
एक संक्षिप्त स्पष्टीकरण और स्रोत कोड स्निपेट्स यहां पाए जा सकते हैं [http://stackoverflow.com/a/39163942/4723795) – xenteros