Miklix

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 कॉल का उपयोग करना है। यहाँ भी कई विकल्प हैं, उन्नत फ़ॉर्मेटिंग के लिए विकल्पों के साथ और बिना, लेकिन अगर आप किसी वास्तविक वस्तु को स्ट्रिंग में बदलना चाहते हैं, तो यह पर्याप्त होगा:

stringValue = System.Convert::ToString(realValue);

यदि इस कोड को AOS पर चलाया जाना है (उदाहरण के लिए बैच जॉब में), तो पहले आवश्यक कोड एक्सेस अनुमति का दावा करना याद रखें। इस मामले में आपको .NET कोड को कॉल करने के लिए ClrInterop प्रकार के InteropPermission की आवश्यकता होगी, इसलिए पूरा कोड उदाहरण कुछ इस तरह दिखेगा:

new InteropPermission(InteropKind::ClrInterop).assert();
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();

ध्यान रखें कि यह सरल System::Convert फ़ंक्शन दशमलव बिंदु वर्ण के संबंध में सिस्टम के वर्तमान लोकेल का उपयोग करता है। यह आपके लिए कोई समस्या नहीं हो सकती है, लेकिन मेरे लिए जो ऐसे क्षेत्र में रहता है जहाँ दशमलव विभाजक के रूप में अवधि के बजाय अल्पविराम का उपयोग किया जाता है, इसके लिए आगे की प्रक्रिया की आवश्यकता हो सकती है यदि उदाहरण के लिए स्ट्रिंग को किसी फ़ाइल में उपयोग करने की आवश्यकता है जिसे अन्य सिस्टम द्वारा पढ़ा जा सकता है।

ब्लूस्काई पर साझा करेंफेसबुक पर सांझा करेंलिंक्डइन पर साझा करेंटम्बलर पर साझा करेंX पर साझा करेंलिंक्डइन पर साझा करेंPinterest पर पिन करें

मिकेल बैंग क्रिस्टेंसन

लेखक के बारे में

मिकेल बैंग क्रिस्टेंसन
मिकेल miklix.com के निर्माता और मालिक हैं। उन्हें पेशेवर कंप्यूटर प्रोग्रामर/सॉफ्टवेयर डेवलपर के रूप में 20 से अधिक वर्षों का अनुभव है और वर्तमान में वे एक बड़े यूरोपीय आईटी निगम के लिए पूर्णकालिक रूप से कार्यरत हैं। जब वे ब्लॉगिंग नहीं करते हैं, तो वे अपना खाली समय विभिन्न प्रकार की रुचियों, शौक और गतिविधियों में बिताते हैं, जो कुछ हद तक इस वेबसाइट पर शामिल किए गए विषयों की विविधता में परिलक्षित हो सकते हैं।