BigDecimal
वर्ग के प्रलेखन का जिक्र करते हुए में BigDecimal में स्ट्रिंग या पूर्णांक का उपयोग करना है, महत्वपूर्ण अंक (n
) और सार्थक अंकों की अधिकतम संख्या (m
) कीरूबी
n,m = a.precs
prec
रिटर्न संख्याa
।
मैं BigDecimal
से संबंधित निम्नलिखित आउटपुट से परेशान हूं।
require 'bigdecimal'
BigDecimal.new('1').precs # => [9, 18]
BigDecimal.new(1).precs # => [9, 27]
मैं कारण है कि जब एक String
पारित हो जाता है, महत्वपूर्ण अंक की अधिकतम संख्या कम है जब एक Fixnum
पारित हो जाता है की तुलना में है को समझ नहीं सकता।
इसके परिणामस्वरूप किसी भी परिशुद्धता के मुद्दे होंगे?
निर्माता एक दूसरा तर्क ले करता है यदि आप स्थिरता चाहते हैं: 'BigDecimal.new ('1', 27) .precs' उदाहरण के लिए। और दस्तावेज़ीकरण कहता है कि "महत्वपूर्ण अंकों की संख्या प्रारंभिक मान से निर्धारित होती है" यदि आप इसे स्वयं निर्दिष्ट नहीं करते हैं। –
@muistooshort अपना अधिकार है कि हम इसे निर्दिष्ट कर सकते हैं। लेकिन मेरा सवाल यह था कि 'सटीक' पहली जगह क्यों अलग हैं? – abhinavmsra
यहां अधिक डेटा पॉइंट हैं। निम्नलिखित अवलोकन स्ट्रिंग्स को संदर्भित करते हैं जिनमें वर्ण '1' केवल (उदा।, "111111" ') और संख्याएं हैं जिनके अंक सभी' 1' (उदा।,' 111111') हैं। '10' से कम वर्णों के लिए, '[9, 18]' वापस कर दिया गया है। '10' से कम अंकों के लिए, '[9, 27]' वापस कर दिया गया है। '10' और' 18' अक्षरों * या * अंकों के बीच, '[18,27] 'वापस आ गया है (यानी, एक ही टुपल दोनों तारों और संख्याओं के लिए वापस किया जाता है),' 1 9 'और कुछ और वर्ण या अंकों के बीच , '[27,36]' वापस आ गया है। इसके अलावा: मेरा सुझाव है कि आप अपने कोड में 'आवश्यकता' bigdecimal 'जोड़ें'। –