Pretvaranje realnog u niz sa svim decimalama u Dynamics AX 2012
Objavljeno: 16. februar 2025. u 10:46:36 UTC
U ovom članku, objašnjavam kako pretvoriti broj s pomičnim zarezom u niz uz očuvanje svih decimala u Dynamics AX 2012, uključujući primjer X++ koda.
Convert a Real to String with All Decimals in Dynamics AX 2012
Informacije u ovom postu su zasnovane na Dynamics AX 2012 R3. Može ili ne mora vrijediti za druge verzije.
S vremena na vrijeme, moram pretvoriti realni broj u niz. Obično je dovoljno samo prosljeđivanje u strFmt(), ali ta funkcija se uvijek zaokružuje na dvije decimale, što nije uvijek ono što želim.
Zatim tu je num2str() funkcija, koja radi dobro, ali zahtijeva da unaprijed znate koliko decimala i znakova želite.
Šta ako samo želite da se broj pretvori u niz, sa svim ciframa i decimalama? Iz nekog razloga, ovo je nešto što me uvijek tjera da guglam jer je to iznenađujuće opskurno i radim to tako rijetko da se obično ne mogu sjetiti točno kako - u većini programskih jezika, očekivao bih da možete jednostavno spojiti realno u prazan niz, ali X++ to ne podržava.
U svakom slučaju, daleko najlakši način koji sam pronašao da to uradim je pomoću .NET poziva. Postoji više opcija i ovdje, sa i bez opcija za napredno formatiranje, ali ako želite samo vrlo jednostavnu konverziju realnog u string, ovo će biti dovoljno:
Ako ovaj kod treba da se pokrene na AOS-u (na primjer u batch poslu), ne zaboravite da prvo potvrdite potrebnu dozvolu za pristup kodu. U ovom slučaju trebat će vam InteropPermission tipa ClrInterop za pozivanje .NET koda, tako da bi primjer punog koda izgledao otprilike ovako:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
Budite svjesni da ova jednostavna funkcija System::Convert koristi trenutnu lokalizaciju sistema u odnosu na decimalni znak. Ovo možda nije problem za vas, ali za mene koji živim u području gdje se zarez, a ne tačka koristi kao decimalni separator, to može zahtijevati daljnju obradu ako string na primjer treba da se koristi u datoteci koja mora biti čitljiva od strane drugih sistema.