Pretvori realno u string sa svim decimalama u Dinamics AKS 2012
Objavio: 19. mart 2025. 21:34:14 UTC
U ovom članku objašnjavam kako pretvoriti broj sa pomičnim zarezom u niz uz očuvanje svih decimala u Dinamics AKS 2012, uključujući primer Ks ++ koda.
Convert a Real to String with All Decimals in Dynamics AX 2012
Informacije u ovom postu zasnovane su na Dynamics AX 2012 R3. Mogu biti tačne ili ne za druge verzije.
Svako malo, treba da konvertujem realni broj u string. Obično, samo njegovo prosleđivanje funkciji strFmt() je dovoljno, ali ta funkcija uvek zaokružuje na dva decimalna mesta, što nije uvek ono što želim.
Postoji i funkcija num2str(), koja dobro funkcioniše, ali zahteva da unapred znate koliko decimala i karaktera želite.
Šta ako samo želite da broj bude konvertovan u string, sa svim ciframa i decimalama? Iz nekog razloga, ovo je nešto što me uvek tera da pretražujem Google, jer je iznenađujuće teško to uraditi, a radim to tako retko da obično ne mogu tačno da se setim kako – u većini programskih jezika, očekivao bih da možete jednostavno da konkatenirate realni broj sa praznim stringom, ali X++ to ne podržava.
U svakom slučaju, najlakši način koji sam pronašao da to uradim je korišćenje .NET poziva. I ovde postoji više opcija, sa i bez opcija za napredno formatiranje, ali ako želite samo zaista jednostavnu konverziju realnog broja u string, ovo će biti dovoljno:
Ukoliko se ovaj kod pokreće na AOS (na primer u batch jobu), ne zaboravite da prvo dodelite potrebne dozvole za pristup kodu. U ovom slučaju, biće vam potrebna InteropPermission tipa ClrInterop za pozivanje .NET koda, pa bi ceo primer koda izgledao ovako:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
Budite svesni da ova jednostavna funkcija System::Convert koristi trenutnu lokalizaciju sistema u pogledu karaktera za decimalnu tačku. Ovo možda neće biti problem za vas, ali za mene, koji živim u području gde se koristi zarez umesto tačke kao separator decimala, može zahtevati dalju obradu ako string, na primer, treba da bude korišćen u fajlu koji mora biti čitljiv od strane drugih sistema.