Miklix

تبدیل یک واقعی به رشته با تمام اعشار در Dynamics AX 2012

منتشر شده: ۱۶ فوریهٔ ۲۰۲۵ ساعت ۱۰:۴۱:۱۵ (UTC)

در این مقاله، نحوه تبدیل یک عدد ممیز شناور به یک رشته را توضیح می دهم و در عین حال تمام اعشار را در Dynamics AX 2012 حفظ می کنیم، از جمله یک مثال کد X++.


این صفحه ماشینی از انگلیسی ترجمه شد تا در دسترس هر چه بیشتر مردم باشد. متأسفانه، ترجمه ماشینی هنوز یک فناوری کامل نشده است، بنابراین ممکن است خطاهایی رخ دهد. در صورت تمایل می توانید نسخه اصلی انگلیسی را در اینجا مشاهده کنید:

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

اطلاعات این بر اساس Dynamics AX 2012 R3 است. ممکن است برای نسخه های دیگر معتبر باشد یا نباشد.

هر چند وقت یکبار، باید یک عدد واقعی را به یک رشته تبدیل کنم. معمولا فقط انتقال آن به strFmt() کافی است، اما این تابع همیشه به دو اعشار گرد می شود، که همیشه آن چیزی نیست که من می خواهم.

سپس تابع num2str() وجود دارد که به خوبی کار می کند، اما باید از قبل بدانید که چند اعشار و کاراکتر می خواهید.

اگر فقط بخواهید عدد با تمام ارقام و اعشار به یک رشته تبدیل شود، چه؟ به دلایلی، این چیزی است که همیشه من را وادار به جستجو در گوگل می کند، زیرا انجام آن به طرز شگفت انگیزی مبهم است و من آنقدر به ندرت این کار را انجام می دهم که معمولا نمی توانم دقیقا به یاد بیاورم که چگونه - در اکثر زبان های برنامه نویسی، من انتظار دارم که شما فقط بتوانید واقعی را به یک رشته خالی متصل کنید، اما X++ از آن پشتیبانی نمی کند.

به هر حال، ساده ترین راهی که برای انجام این کار پیدا کرده ام، استفاده از تماس دات نت است. در اینجا گزینه های متعددی نیز وجود دارد، با و بدون گزینه هایی برای قالب بندی پیشرفته، اما اگر فقط می خواهید تبدیل واقعی به یک رشته را تبدیل کنید، این کافی است:

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

اگر قرار است این کد روی AOS اجرا شود (به عنوان مثال در یک کار دسته ای)، به یاد داشته باشید که ابتدا مجوز دسترسی به کد لازم را تأیید کنید. در این حالت برای فراخوانی کد دات نت به یک InteropPermission از نوع ClrInterop نیاز دارید، بنابراین مثال کامل کد چیزی شبیه به این خواهد بود:

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

توجه داشته باشید که این تابع ساده System::Convert از زبان فعلی سیستم با توجه به کاراکتر اعشار استفاده می کند. این ممکن است برای شما مشکلی ایجاد نکند، اما برای من که در منطقه ای زندگی می کنم که به جای نقطه به عنوان جداکننده اعشاری از کاما استفاده می شود، ممکن است نیاز به پردازش بیشتری داشته باشد اگر به عنوان مثال رشته در فایلی استفاده شود که باید توسط سیستم های دیگر قابل خواندن باشد.

در Bluesky به اشتراک بگذاریددر فیسبوک به اشتراک بگذاریددر لینکدین به اشتراک بگذاریددر Tumblr به اشتراک بگذاریددر X به اشتراک بگذاریددر لینکدین به اشتراک بگذاریدپین در پینترست

میکل بنگ کریستنسن

درباره نویسنده

میکل بنگ کریستنسن
مایکل خالق و صاحب miklix.com است. او بیش از 20 سال تجربه به عنوان یک برنامه نویس حرفه ای کامپیوتر / توسعه دهنده نرم افزار دارد و در حال حاضر به طور تمام وقت برای یک شرکت بزرگ فناوری اطلاعات اروپایی مشغول به کار است. هنگامی که وبلاگ نویسی نمی کند، اوقات فراغت خود را صرف مجموعه وسیعی از علایق، سرگرمی ها و فعالیت ها می کند، که ممکن است تا حدی در موضوعات مختلف پوشش داده شده در این وب سایت منعکس شود.