Претворите реал у стринг са свим децималима у Динамицс АКС 2012
Објављено: 16. фебруар 2025. 10:47:35 UTC
Последње ажурирано: 12. јануар 2026. 08:52:48 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 користи тренутне локалне поставке система у погледу децималног зареза. Ово можда неће бити проблем за вас, али за мене, који живим у подручју где се зарез користи уместо тачке као децимални сепаратор, може бити потребна даља обрада ако, на пример, стринг треба да се користи у датотеци коју други системи морају да читају.
Даље читање
Ако сте уживали у овом посту, можда ће вам се свидети и ови предлози:
- Како прећи преко елемената енума из Кс++ кода у Динамицс АКС 2012
- Идентификовање класе документа и упита за АИФ услугу у Динамицс АКС 2012
- Позивање АИФ Доцумент Сервицес директно са Кс++ у Динамицс АКС 2012
