Miklix

Փոխարկել իրականը լարում բոլոր 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 զանգի միջոցով: Այստեղ կան նաեւ բազմաթիվ տարբերակներ, հետ եւ առանց տարբերակների առաջադեմ ֆորմատավորման, բայց եթե դուք պարզապես ցանկանում եք իրականի փոխակերպումը մի լարի, սա կբավարարի.

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

Եթե այս կոդը պետք է աշխատի AOS-ում (օրինակ՝ բատչի աշխատանքում), հիշեք, որ նախ պետք է պնդեք անհրաժեշտ կոդի մուտքի թույլտվությունը: Այս դեպքում ձեզ անհրաժեշտ կլինի InteropPermission տեսակի ClrInterop կոչելու .NET կոդը, այնպես որ ամբողջական կոդի օրինակը նման մի բան տեսք կունենա.

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

Տեղյակ եղեք, որ այս պարզ Համակարգ::Convert ֆունկցիան օգտագործում է համակարգի ընթացիկ լոկալը՝ տասնորդական կետային կերպարի նկատմամբ: Սա գուցե խնդիր չլինի ձեզ համար, բայց ինձ համար, ով ապրում է մի տարածքում, որտեղ կոմման օգտագործվում է, այլ ոչ թե ժամանակահատվածը որպես տասնորդական անջատիչ, դա կարող է պահանջել հետագա մշակում, եթե, օրինակ, լարը պետք է օգտագործվի ֆայլում, որը պետք է մատչելի լինի այլ համակարգերի կողմից:

Կիսվեք Bluesky-ումԿիսվել Facebook-ումԿիսվեք LinkedIn-ումԿիսվեք Tumblr-ումԿիսվեք X-ումԿիսվեք LinkedIn-ումԿպցնել Պինթրեսթում

Միկել Բանգ Քրիստենսեն

Հեղինակի մասին

Միկել Բանգ Քրիստենսեն
Mikkel-ը miklix.com-ի ստեղծողն ու սեփականատերն է: Նա ունի ավելի քան 20 տարվա աշխատանքային փորձ՝ որպես պրոֆեսիոնալ համակարգչային ծրագրավորող/ծրագրային ապահովման մշակող և ներկայումս լրիվ դրույքով աշխատում է եվրոպական խոշոր ՏՏ կորպորացիայի մեջ: Երբ նա բլոգ չի գրում, նա իր ազատ ժամանակն անցկացնում է հետաքրքրությունների, հոբբիների և գործունեության լայն շրջանակի վրա, որոնք որոշ չափով կարող են արտացոլվել այս կայքում ընդգրկված թեմաների բազմազանության մեջ: