Претворите реал у стринг са свим децималима у Динамицс АКС 2012
Објављено: 16. фебруар 2025. 10:47:35 UTC
У овом чланку објашњавам како да конвертујете број са покретним зарезом у стринг уз очување свих децимала у Динамицс АКС 2012, укључујући пример Кс++ кода.
Convert a Real to String with All Decimals in Dynamics AX 2012
Информације у овом посту су засноване на Динамицс АКС 2012 Р3. Може, али и не мора бити важеће за друге верзије.
С времена на време, морам да конвертујем прави број у низ. Обично је довољно само прослеђивање у стрФмт(), али та функција увек заокружује на две децимале, што није увек оно што желим.
Затим постоји функција нум2стр() која добро функционише, али захтева да унапред знате колико децимала и знакова желите.
Шта ако желите само да се број претвори у низ, са свим цифрама и децималама? Из неког разлога, ово је нешто што ме увек тера на гуглање јер је то изненађујуће нејасно да радим, а ја то радим тако ретко да обично не могу да се сетим тачно како – у већини програмских језика, очекивао бих да бисте могли само да повежете реал са празан стринг, али Кс++ то не подржава.
У сваком случају, далеко најлакши начин да то урадим је коришћење .НЕТ позива. Овде такође постоји више опција, са и без опција за напредно форматирање, али ако желите заиста једноставну конверзију реалног у стринг, ово ће бити довољно:
Ако овај код треба да се покрене на АОС-у (на пример у пакетном задатку), не заборавите да прво потврдите неопходну дозволу за приступ коду. У овом случају ће вам требати ИнтеропПермиссион типа ЦлрИнтероп да бисте позвали .НЕТ код, тако да би цео пример кода изгледао отприлике овако:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
Имајте на уму да ова једноставна функција Систем::Цонверт користи тренутну локализацију система у односу на знак децималног зареза. Ово можда није проблем за вас, али за мене који живим у области у којој се као децимални сепаратор користи зарез, а не тачка, може захтевати даљу обраду ако стринг, на пример, треба да се користи у датотеци коју други системи морају да читају.