Miklix

Dynamics AX 2012-də Bütün Decimals ilə Bir Realı String-ə Çevir

Nəşr olundu: 16 fevral 2025 at 10:47:36 UTC
Son yeniləmə: 12 yanvar 2026 at 08:52:48 UTC

Bu məqalədə, Dynamics AX 2012-də bütün onluq ədədləri, o cümlədən X++ kod nümunəsini qoruyaraq üzən nöqtəli ədədi necə sətirə çevirəcəyinizi izah edirəm.


Bu səhifə mümkün qədər çox insan üçün əlçatan olması üçün ingilis dilindən maşın tərcümə edilib. Təəssüf ki, maşın tərcüməsi hələ mükəmməl texnologiya deyil, ona görə də səhvlər baş verə bilər. İstəyirsinizsə, orijinal ingilis versiyasına buradan baxa bilərsiniz:

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

Bu yazıdakı məlumat Dynamics AX 2012 R3-ə əsaslanır. Digər versiyalar üçün keçərli ola bilər və ya olmaya da bilər.

Bəzən həqiqi ədədi sətirə çevirməli oluram. Adətən, onu strFmt() funksiyasına ötürmək kifayətdir, amma bu funksiya həmişə iki onluq kəsrə qədər yuvarlaqlaşdırılır ki, bu da həmişə istədiyim kimi olmur.

Daha sonra yaxşı işləyən, lakin neçə onluq kəsr və simvol istədiyinizi əvvəlcədən bilməyinizi tələb edən num2str() funksiyası var.

Bəs əgər sadəcə rəqəmin bütün rəqəmləri və onluq kəsrləri olan bir sətirə çevrilməsini istəyirsinizsə, necə olar? Nədənsə, bu, məni həmişə Google-da axtarmağa vadar edir, çünki bunu etmək təəccüblü dərəcədə qaranlıqdır və mən bunu o qədər nadir hallarda edirəm ki, adətən necə etdiyimi dəqiq xatırlaya bilmirəm - əksər proqramlaşdırma dillərində realın boş bir sətirlə birləşdirilə biləcəyini gözləyirdim, amma X++ bunu dəstəkləmir.

Hər halda, bunu etməyin ən asan yolu .NET çağırışından istifadə etməkdir. Burada da qabaqcıl formatlaşdırma seçimləri ilə və seçimləri olmadan bir çox seçim var, ancaq sadəcə realın sətirə çox sadə çevrilməsini istəyirsinizsə, bu kifayət edəcək:

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

Əgər bu kod AOS-da (məsələn, toplu işdə) işlədiləcəksə, əvvəlcə lazımi koda giriş icazəsini təsdiqləməyi unutmayın. Bu halda, .NET kodunu çağırmaq üçün ClrInterop tipli InteropPermission-a ehtiyacınız olacaq, beləliklə, tam kod nümunəsi belə görünəcək:

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

Nəzərə alın ki, bu sadə System::Convert funksiyası sistemin cari lokal parametrlərindən onluq nöqtə simvoluna görə istifadə edir. Bu, sizin üçün problem olmaya bilər, amma onluq ayırıcı kimi nöqtə əvəzinə vergülün istifadə olunduğu bir ərazidə yaşayan mənim üçün, məsələn, sətir digər sistemlər tərəfindən oxuna bilən bir faylda istifadə olunmalıdırsa, əlavə emal tələb oluna bilər.

Əlavə Oxu

Bu yazı xoşunuza gəldisə, bu təklifləri də bəyənə bilərsiniz:


Bluesky-də paylaşınFacebookda paylaşLinkedIn-də paylaşınTumblr-da paylaşınX-də paylaşınLinkedIn-də paylaşınPinterest-də Pin

Mikkel Christensen

Müəllif haqqında

Mikkel Christensen
Mikkel miklix.com saytının yaradıcısı və sahibidir. O, peşəkar kompüter proqramçısı/proqram təminatı tərtibatçısı kimi 20 ildən artıq təcrübəyə malikdir və hazırda böyük Avropa İT korporasiyasında tam iş günü işləyir. Bloq yazmayanda o, boş vaxtını geniş çeşidli maraqlara, hobbilərə və fəaliyyətlərə sərf edir ki, bu da müəyyən dərəcədə bu veb-saytda əhatə olunan müxtəlif mövzularda əks oluna bilər.