Teisendage reaal kõigi kümnendkohtadega stringiks rakenduses Dynamics AX 2012
Avaldatud: 16. veebruar 2025, kell 10:40:30 UTC
Viimati uuendatud: 12. jaanuar 2026, kell 08:50:47 UTC
Selles artiklis selgitan, kuidas Dynamics AX 2012-s ujukomaarvu stringiks teisendada, säilitades samal ajal kõik kümnendmurrud, sh X++ koodi näide.
Convert a Real to String with All Decimals in Dynamics AX 2012
Selle postituse teave põhineb Dynamics AX 2012 R3-l. See ei pruugi kehtida teiste versioonide puhul.
Aeg-ajalt pean ma reaalarvu stringiks teisendama. Tavaliselt piisab selle lihtsalt strFmt() funktsioonile edastamisest, aga see funktsioon ümardab alati kahe kümnendkohani, mis pole alati see, mida ma tahan.
Siis on veel funktsioon num2str(), mis töötab küll hästi, aga nõuab, et teaksite eelnevalt, mitu kümnendkohta ja tähemärki soovite.
Mis siis, kui soovite lihtsalt numbri teisendada stringiks, mis sisaldab kõiki numbreid ja kümnendmurde? Mingil põhjusel on see midagi, mis paneb mind alati Google'ist otsima, sest see on üllatavalt raskesti teostatav ja ma teen seda nii harva, et ma tavaliselt ei mäletagi täpselt, kuidas – enamikus programmeerimiskeeltes eeldaksin, et saate lihtsalt reaalarvu tühja stringiga liita, aga X++ seda ei toeta.
Igatahes, minu leitud lihtsaim viis selleks on .NET-kõne kasutamine. Ka siin on mitu võimalust, nii täiustatud vormindamise valikutega kui ka ilma, aga kui soovite lihtsalt reaalarvu stringiks teisendada, piisab sellest:
Kui seda koodi kavatsetakse AOS-is käivitada (näiteks pakktöötluses), pidage meeles, et kõigepealt tuleb kinnitada vajalik koodile juurdepääsu õigus. Sellisel juhul vajate .NET-koodi kutsumiseks ClrInterop tüüpi InteropPermission'i, seega näeks täielik koodinäide välja umbes selline:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
Pea meeles, et see lihtne System::Convert funktsioon kasutab süsteemi praegust lokaati kümnendkoha suhtes. See ei pruugi sulle probleemiks olla, aga minu jaoks, kes elan piirkonnas, kus kümnendkoha eraldajana kasutatakse punkti asemel koma, võib see vajada täiendavat töötlemist, kui stringi on vaja kasutada näiteks failis, mida peavad teised süsteemid loetavaks pidama.
Lisalugemist
Kui see postitus teile meeldis, võivad teile meeldida ka need soovitused:
- Kuidas itereerida X++ koodi enumi elemente rakenduses Dynamics AX 2012
- Stringi vormindamine makro ja strFmt abil rakenduses Dynamics AX 2012
- Kustutage Dynamics AX-i 2012 juriidiline isik (ettevõtte kontod).
