Teisendage reaal kõigi kümnendkohtadega stringiks rakenduses Dynamics AX 2012
Avaldatud: 16. veebruar 2025, kell 10:40:30 UTC
Selles artiklis selgitan, kuidas teisendada ujukomaarv stringiks, säilitades Dynamics AX-i 2012 kõik kümnendkohad, sealhulgas X++ koodinäide.
Convert a Real to String with All Decimals in Dynamics AX 2012
Selles postituses olev teave põhineb Dynamics AX-i 2012 R3-l. See võib teiste versioonide jaoks kehtida, kuid ei pruugi kehtida.
Aeg-ajalt pean reaalarvu teisendama stringiks. Tavaliselt piisab selle edastamisest strFmt()-le, kuid see funktsioon ümardab alati kahe kümnendkohani, mis pole alati see, mida ma tahan.
Siis on funktsioon num2str(), mis töötab hästi, kuid eeldab, et peaksite varakult teadma, kui palju koma ja märke soovite.
Mis siis, kui soovite, et number muudetaks stringiks, mis sisaldab kõiki numbreid ja kümnendkohti? Millegipärast paneb mind alati guugeldama, sest seda on üllatavalt ebaselge teha ja ma teen seda nii harva, et tavaliselt ei mäletagi täpselt, kuidas – enamikus programmeerimiskeeltes eeldaksin, et saate reaalse lihtsalt tühja stringiga ühendada, kuid X++ seda ei toeta.
Igatahes, kõige lihtsam viis, kuidas ma seda olen leidnud, on kasutada .NET-kõnet. Ka siin on mitu valikut, täiustatud vormindamise valikutega ja ilma, kuid kui soovite lihtsalt reaalvormingut stringiks teisendada, piisab sellest:
Kui seda koodi kavatsete käitada AOS-is (näiteks pakktööna), ärge unustage esmalt kinnitada vajalikku koodile juurdepääsu luba. Sel juhul vajate .NET-koodi kutsumiseks InteropPermissioni tüüpi ClrInterop, nii et täielik koodinäide näeks välja umbes selline:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
Pidage meeles, et see lihtne funktsioon System::Convert kasutab kümnendkoha märgi suhtes süsteemi praegust lokaadi. See ei pruugi teie jaoks probleem olla, kuid minu jaoks, kes ma elan piirkonnas, kus kümnendkoha eraldajana kasutatakse koma, mitte punkti, võib see vajada täiendavat töötlemist, kui näiteks stringi on vaja kasutada failis, mis peab olema muude süsteemide jaoks loetav.