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