Miklix

Dynamics AX 2012 में सभी दशमलवों के साथ रियल को स्ट्रिंग में बदलें

प्रकाशित: 16 फ़रवरी 2025 को 10:41:08 am UTC बजे
आखरी अपडेट: 12 जनवरी 2026 को 8:52:30 am UTC बजे

इस आर्टिकल में, मैं बताता हूँ कि Dynamics AX 2012 में सभी डेसिमल को बचाते हुए एक फ्लोटिंग पॉइंट नंबर को स्ट्रिंग में कैसे कन्वर्ट करें, जिसमें एक X++ कोड उदाहरण भी शामिल है।


इस पृष्ठ को अंग्रेजी से मशीन द्वारा अनुवादित किया गया है ताकि इसे अधिक से अधिक लोगों तक पहुँचाया जा सके। दुर्भाग्य से, मशीन अनुवाद अभी तक एक पूर्ण तकनीक नहीं है, इसलिए त्रुटियाँ हो सकती हैं। यदि आप चाहें, तो आप मूल अंग्रेजी संस्करण यहाँ देख सकते हैं:

Convert a Real to String with All Decimals in Dynamics AX 2012

इस पोस्ट में दी गई जानकारी Dynamics AX 2012 R3 पर आधारित है। यह दूसरे वर्शन के लिए वैलिड हो भी सकती है और नहीं भी।

कभी-कभी, मुझे एक रियल नंबर को स्ट्रिंग में बदलने की ज़रूरत होती है। आमतौर पर, इसे strFmt() में पास करना ही काफ़ी होता है, लेकिन वह फ़ंक्शन हमेशा दो डेसिमल तक राउंड ऑफ़ करता है, जो मैं हमेशा नहीं चाहता।

फिर num2str() फ़ंक्शन है, जो ठीक काम करता है, लेकिन इसके लिए आपको पहले से पता होना चाहिए कि आपको कितने डेसिमल और कैरेक्टर चाहिए।

क्या होगा अगर आप बस नंबर को एक स्ट्रिंग में बदलना चाहते हैं, जिसमें सभी डिजिट्स और डेसिमल हों? किसी वजह से, यह एक ऐसी चीज़ है जिसके लिए मैं हमेशा गूगल करता रहता हूँ क्योंकि यह करना हैरानी की बात है कि मुश्किल है और मैं इसे इतनी कम बार करता हूँ कि मुझे आमतौर पर ठीक से याद नहीं रहता कि कैसे - ज़्यादातर प्रोग्रामिंग लैंग्वेज में, मुझे उम्मीद है कि आप रियल को एक खाली स्ट्रिंग में जोड़ सकते हैं, लेकिन 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 से अधिक वर्षों का अनुभव है और वर्तमान में वे एक बड़े यूरोपीय आईटी निगम के लिए पूर्णकालिक रूप से कार्यरत हैं। जब वे ब्लॉगिंग नहीं करते हैं, तो वे अपना खाली समय विभिन्न प्रकार की रुचियों, शौक और गतिविधियों में बिताते हैं, जो कुछ हद तक इस वेबसाइट पर शामिल किए गए विषयों की विविधता में परिलक्षित हो सकते हैं।