Dynamics AX 2012 में सभी दशमलवों के साथ रियल को स्ट्रिंग में बदलें
प्रकाशित: 16 फ़रवरी 2025 को 10:41:08 am UTC बजे
इस आलेख में, मैं समझाता हूँ कि Dynamics AX 2012 में सभी दशमलवों को संरक्षित करते हुए एक फ़्लोटिंग पॉइंट संख्या को स्ट्रिंग में कैसे परिवर्तित किया जाए, जिसमें X++ कोड उदाहरण भी शामिल है।
Convert a Real to String with All Decimals in Dynamics AX 2012
इस पोस्ट में दी गई जानकारी Dynamics AX 2012 R3 पर आधारित है। यह अन्य संस्करणों के लिए मान्य हो भी सकती है और नहीं भी।
कभी-कभी मुझे एक वास्तविक संख्या को स्ट्रिंग में बदलने की ज़रूरत होती है। आमतौर पर, इसे strFmt() में पास करना ही काफी होता है, लेकिन वह फ़ंक्शन हमेशा दो दशमलव तक पूर्णांकित हो जाता है, जो हमेशा मेरी इच्छा नहीं होती।
फिर num2str() फ़ंक्शन है, जो अच्छी तरह से काम करता है, लेकिन इसके लिए आपको पहले से पता होना चाहिए कि आपको कितने दशमलव और वर्ण चाहिए।
क्या होगा यदि आप केवल संख्या को सभी अंकों और दशमलवों के साथ एक स्ट्रिंग में परिवर्तित करना चाहते हैं? किसी कारण से, यह कुछ ऐसा है जिसके लिए मैं हमेशा Google पर खोज करता हूँ क्योंकि यह आश्चर्यजनक रूप से अस्पष्ट है और मैं इसे इतनी कम बार करता हूँ कि मुझे आमतौर पर ठीक से याद नहीं रहता कि यह कैसे किया जाता है - अधिकांश प्रोग्रामिंग भाषाओं में, मैं उम्मीद करता हूँ कि आप वास्तविक को एक खाली स्ट्रिंग में जोड़ सकते हैं, लेकिन X++ इसका समर्थन नहीं करता है।
वैसे भी, ऐसा करने का अब तक का सबसे आसान तरीका जो मैंने पाया है वह .NET कॉल का उपयोग करना है। यहाँ भी कई विकल्प हैं, उन्नत फ़ॉर्मेटिंग के लिए विकल्पों के साथ और बिना, लेकिन अगर आप किसी वास्तविक वस्तु को स्ट्रिंग में बदलना चाहते हैं, तो यह पर्याप्त होगा:
यदि इस कोड को AOS पर चलाया जाना है (उदाहरण के लिए बैच जॉब में), तो पहले आवश्यक कोड एक्सेस अनुमति का दावा करना याद रखें। इस मामले में आपको .NET कोड को कॉल करने के लिए ClrInterop प्रकार के InteropPermission की आवश्यकता होगी, इसलिए पूरा कोड उदाहरण कुछ इस तरह दिखेगा:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
ध्यान रखें कि यह सरल System::Convert फ़ंक्शन दशमलव बिंदु वर्ण के संबंध में सिस्टम के वर्तमान लोकेल का उपयोग करता है। यह आपके लिए कोई समस्या नहीं हो सकती है, लेकिन मेरे लिए जो ऐसे क्षेत्र में रहता है जहाँ दशमलव विभाजक के रूप में अवधि के बजाय अल्पविराम का उपयोग किया जाता है, इसके लिए आगे की प्रक्रिया की आवश्यकता हो सकती है यदि उदाहरण के लिए स्ट्रिंग को किसी फ़ाइल में उपयोग करने की आवश्यकता है जिसे अन्य सिस्टम द्वारा पढ़ा जा सकता है।