2015-10-28 10 views
6

जावा में, एक बड़ा bigDecimal.toString() से एक BigDecimal नया हमेशा बराबर है? उदाहरणएक बड़ा bigDecimal.toString() से एक BigDecimal नया हमेशा बराबर है?

BigDecimal a = new BigDecimal("1.23"); 
    BigDecimal b = new BigDecimal(a.toString()); 

    System.out.println(a.compareTo(b) == 0); // always true? 

के लिए मुझे पता है BigDecimal अपरिवर्तनीय है, लेकिन मैं अगर वहाँ clone एक BigDecimal वस्तु के लिए किसी भी अच्छा तरीका है जानना चाहते हैं?

+0

ज्यादा नहीं होने की संभावना को जोड़ने के लिए किया जाएगा, तो आप हमेशा के लिए जा सकते हैं एक उथली प्रतिलिपि हालांकि – CrakC

+0

@CrakC क्या आप उथली प्रतिलिपि के लिए एक उदाहरण दिखा सकते हैं? – andyf

+0

_if किसी BigDecimal ऑब्जेक्ट को क्लोन करने का कोई अच्छा तरीका है _ क्या आपका मतलब केवल ** ** 'toString() 'प्रतिनिधित्व ** से है? –

उत्तर

6

हाँ आप ऐसा मान सकते हैं। BigDecimal.toString डॉक्स

हैं कि स्ट्रिंग प्रतिनिधित्व BigDecimal(String) निर्माता का उपयोग कर एक BigDecimal वापस करने के लिए बदल जाती है, फिर मूल मूल्य बरामद किया जाएगा।

हालांकि आप सुरक्षित रूप से एक ही वस्तु साझा कर सकते हैं, क्योंकि यह immutable है और नकल

की आवश्यकता नहीं है
3

एक आसान तरीका शून्य

BigDecimal a = new BigDecimal("1.23"); 
BigDecimal b = a.add(BigDecimal.ZERO); 
संबंधित मुद्दे