Փոխարկել իրականը լարում բոլոր decimals հետ Դինամիկայում AX 2012
Հրապարակվել է՝ 16 փետրվարի, 2025 թ., 10:46:35 UTC
Այս հոդվածում ես բացատրում եմ, թե ինչպես կարելի է լողացող կետի համարը վերածել լարի, միաժամանակ պահպանելով դինամիկայի AX 2012-ի բոլոր տասնորդականները, ներառյալ X++ կոդի օրինակը:
Convert a Real to String with All Decimals in Dynamics AX 2012
Այս պոստում տեղադրված տեղեկատվությունը հիմնված է Dynamics AX 2012 R3-ի վրա: Այն կարող է կամ չի կարող վավերական լինել այլ տարբերակների համար։
Ժամանակ առ ժամանակ ես պետք է իրական թիվը վերածեմ լարի: Սովորաբար, պարզապես այն strFmt() փոխանցելը բավական է, բայց այդ ֆունկցիան միշտ պտտվում է մինչեւ երկու տասնորդական, ինչը միշտ չէ, որ այն է, ինչ ես եմ ուզում:
Այնուհետեւ կա num2str() ֆունկցիան, որը լավ է աշխատում, բայց պահանջում է, որ դուք նախօրոք իմանաք, թե քանի տասնորդական եւ կերպարներ եք ցանկանում:
Ի՞նչ անել, եթե պարզապես ուզում եք, որ թիվը վերածվի լարի, բոլոր թվանշաններով եւ տասնորդականներով: Ինչ - որ պատճառով, սա մի բան է, որը միշտ ինձ Googling է տալիս, քանի որ զարմանալիորեն անհասկանալի է անելը, եւ ես անում եմ դա այնքան հազվադեպ, որ սովորաբար չեմ հիշում, թե ինչպես ծրագրավորման լեզուների մեծ մասում, ես ակնկալում եմ, որ դուք կարող եք պարզապես կոնկտատել իրականը դատարկ լարի համար, բայց X++ - ը չի աջակցում դրան ։
Ամեն դեպքում, ինձ համար շատ ամենահեշտը դա անելն է.NET զանգի միջոցով: Այստեղ կան նաեւ բազմաթիվ տարբերակներ, հետ եւ առանց տարբերակների առաջադեմ ֆորմատավորման, բայց եթե դուք պարզապես ցանկանում եք իրականի փոխակերպումը մի լարի, սա կբավարարի.
Եթե այս կոդը պետք է աշխատի AOS-ում (օրինակ՝ բատչի աշխատանքում), հիշեք, որ նախ պետք է պնդեք անհրաժեշտ կոդի մուտքի թույլտվությունը: Այս դեպքում ձեզ անհրաժեշտ կլինի InteropPermission տեսակի ClrInterop կոչելու .NET կոդը, այնպես որ ամբողջական կոդի օրինակը նման մի բան տեսք կունենա.
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
Տեղյակ եղեք, որ այս պարզ Համակարգ::Convert ֆունկցիան օգտագործում է համակարգի ընթացիկ լոկալը՝ տասնորդական կետային կերպարի նկատմամբ: Սա գուցե խնդիր չլինի ձեզ համար, բայց ինձ համար, ով ապրում է մի տարածքում, որտեղ կոմման օգտագործվում է, այլ ոչ թե ժամանակահատվածը որպես տասնորդական անջատիչ, դա կարող է պահանջել հետագա մշակում, եթե, օրինակ, լարը պետք է օգտագործվի ֆայլում, որը պետք է մատչելի լինի այլ համակարգերի կողմից: