تبدیل یک واقعی به رشته با تمام اعشار در Dynamics AX 2012
منتشر شده: ۱۶ فوریهٔ ۲۰۲۵ ساعت ۱۰:۴۱:۱۵ (UTC)
آخرین به روز رسانی: ۱۲ ژانویهٔ ۲۰۲۶ ساعت ۸:۵۲:۳۲ (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 است. در اینجا نیز گزینههای متعددی وجود دارد، با و بدون گزینههای قالببندی پیشرفته، اما اگر فقط تبدیل بسیار ساده یک عدد حقیقی به یک رشته را میخواهید، این کافی است:
اگر قرار است این کد روی AOS اجرا شود (مثلاً در یک کار دستهای)، به یاد داشته باشید که ابتدا مجوز دسترسی به کد لازم را تعیین کنید. در این حالت، برای فراخوانی کد .NET به یک InteropPermission از نوع ClrInterop نیاز خواهید داشت، بنابراین مثال کامل کد چیزی شبیه به این خواهد بود:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
توجه داشته باشید که این تابع سادهی System::Convert از موقعیت مکانی فعلی سیستم در رابطه با کاراکتر نقطه اعشار استفاده میکند. این ممکن است برای شما مشکلی ایجاد نکند، اما برای من که در منطقهای زندگی میکنم که به جای نقطه از کاما به عنوان جداکنندهی اعشار استفاده میشود، اگر مثلاً رشته نیاز به استفاده در فایلی داشته باشد که باید توسط سایر سیستمها قابل خواندن باشد، ممکن است به پردازش بیشتری نیاز داشته باشد.
مطالعه بیشتر
اگر از این پست لذت بردید، ممکن است این پیشنهادات را نیز بپسندید:
- بررسی سریع Dynamics AX 2012 SysOperation Framework
- تفاوت بین داده() و buf2Buf() در Dynamics AX 2012
- استفاده از چارچوب SysExtension برای یافتن اینکه کدام زیر کلاس را در Dynamics AX 2012 نمونه سازی کنیم
