Pretvaranje realnog u niz sa svim decimalama u Dynamics AX 2012
Objavljeno: 16. februar 2025. u 10:46:36 UTC
Posljednje ažurirano: 12. januar 2026. u 08:52:43 UTC
U ovom članku objašnjavam kako pretvoriti broj s pomičnim zarezom u niz znakova 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 zasnovane su na Dynamics AX 2012 R3. Mogu, ali i ne moraju biti važeće za druge verzije.
S vremena na vrijeme, trebam pretvoriti realni broj u string. Obično je dovoljno samo ga proslijediti funkciji strFmt(), ali ta funkcija uvijek zaokružuje na dvije decimale, što nije uvijek ono što želim.
Zatim postoji funkcija num2str(), koja dobro funkcioniše, ali zahtijeva da unaprijed znate koliko decimala i znakova želite.
Šta ako samo želite da se broj pretvori u string, sa svim ciframa i decimalama? Iz nekog razloga, ovo je nešto što me uvijek tjera da guglam jer je iznenađujuće nejasno za napraviti i radim to tako rijetko da se obično ne mogu sjetiti tačno kako - u većini programskih jezika, očekivao bih da biste mogli jednostavno spojiti realni broj sa praznim stringom, ali X++ to ne podržava.
U svakom slučaju, daleko najlakši način koji sam pronašao da ovo uradim je korištenjem .NET poziva. I ovdje postoji više opcija, sa i bez opcija za napredno formatiranje, ali ako želite samo jednostavnu konverziju realnog broja u string, ovo će biti dovoljno:
Ako se ovaj kod izvršava na AOS-u (na primjer, u batch zadatku), ne zaboravite prvo potvrditi potrebnu dozvolu za pristup kodu. U ovom slučaju, trebat će vam InteropPermission tipa ClrInterop za pozivanje .NET koda, tako da bi puni primjer koda izgledao ovako:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
Imajte na umu da ova jednostavna funkcija System::Convert koristi trenutne postavke sistema u odnosu na decimalni zarez. Ovo možda neće biti problem za vas, ali za mene, koji živim u području gdje se zarez koristi umjesto tačke kao decimalni separator, može biti potrebna daljnja obrada ako se, na primjer, niz treba koristiti u datoteci koju drugi sistemi moraju moći čitati.
Dodatno čitanje
Ako vam se svidio ovaj post, možda će vam se svidjeti i ovi prijedlozi:
- Greška "No metadata class defined for data contract object" in Dynamics AX 2012
- Identifikacija klase dokumenta i upita za AIF uslugu u Dynamics AX 2012
- Izbrišite pravno lice (nalozi kompanije) u Dynamics AX 2012
