Претворете реално во стринг со сите децимали во Dynamics AX 2012
Објавено: 5 март 2025, во 19:54:10 UTC
Последно ажурирано: 12 јануари 2026, во 08:52:53 UTC
Во оваа статија, објаснувам како да конвертирате број со подвижна запирка во низа, а воедно да ги зачувате сите децимални броеви во Dynamics AX 2012, вклучувајќи пример за X++ код.
Convert a Real to String with All Decimals in Dynamics AX 2012
Информациите во овој пост се базираат на Dynamics AX 2012 R3. Можеби ќе важат, но и нема да важат за други верзии.
Одвреме-навреме, треба да конвертирам реален број во низа. Обично, само да го предадам на strFmt() е доволно, но таа функција секогаш заокружува на две децимални броеви, што не е секогаш она што го сакам.
Потоа, тука е функцијата num2str(), која работи добро, но бара однапред да знаете колку децимални цифри и знаци сакате.
Што ако сакате само бројот да се претвори во низа, со сите цифри и децимални броеви? Од некоја причина, ова е нешто што постојано ме тера да пребарувам на Google бидејќи е изненадувачки нејасно за правење и го правам толку ретко што обично не можам да се сетам точно како - во повеќето програмски јазици, би очекувал дека можете едноставно да споите реален број во празен низа, но X++ не го поддржува тоа.
Како и да е, најлесниот начин што го најдов да го направам ова е со користење на .NET повик. Исто така, тука има повеќе опции, со и без опции за напредно форматирање, но ако сакате само навистина едноставна конверзија од реален број во стринг, ова ќе биде доволно:
Ако овој код треба да се изврши на AOS (на пример, во групна задача), не заборавајте прво да ја побарате потребната дозвола за пристап до кодот. Во овој случај, ќе ви треба InteropPermission од типот ClrInterop за да повикате .NET код, па затоа целиот пример за код би изгледал некако вака:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
Имајте предвид дека оваа едноставна функција System::Convert ја користи моменталната локација на системот во однос на децималната запирка. Ова можеби не е проблем за вас, но за мене кој живеам во област каде што се користи запирка наместо точка како децимален сепаратор, може да биде потребна дополнителна обработка ако стрингот, на пример, треба да се користи во датотека што мора да биде читлива од други системи.
Дополнително читање
Ако ви се допадна овој пост, можеби ќе ви се допаднат и овие предлози:
- Како да се повторуваат над елементите на Enum од кодот X++ во Dynamics AX 2012
- Форматирање низи со макро и strFmt во Dynamics AX 2012
- Разликата помеѓу податоците () и buf2Buf () во Dynamics AX 2012
