A Dynamics AX 2012-ben valós átalakítása karakterláncra minden tizedesjegygel
Megjelent: 2025. február 16. 10:40:33 UTC
Ebben a cikkben elmagyarázom, hogyan konvertálhat lebegőpontos számot karakterláncsá, miközben megőrzi az összes tizedesjegyet a Dynamics AX 2012-ben, beleértve az X++ kód példáját is.
Convert a Real to String with All Decimals in Dynamics AX 2012
A bejegyzésben található információk a Dynamics AX 2012 R3-on alapulnak. Lehet, hogy más verziókra érvényes, de lehet, hogy nem.
Időnként át kell konvertálnom egy valós számot stringgé. Általában elég csak átadni az strFmt()-nek, de ez a függvény mindig két tizedesjegyre kerekedik, amit nem mindig akarok.
Aztán ott van a num2str() függvény, amely jól működik, de megköveteli, hogy előre tudja, hány tizedesjegyet és karaktert szeretne.
Mi van, ha csak azt szeretné, hogy a számot karakterláncsá alakítsa, minden számjegygel és tizedesjegyekkel? Valamilyen oknál fogva ez az, ami miatt mindig guglizok, mert meglepően homályos megtenni, és olyan ritkán csinálom, hogy általában nem is emlékszem pontosan, hogyan – a legtöbb programozási nyelvben azt várnám, hogy a valódit csak egy üres karakterlánchoz lehet összefűzni, de az X++ ezt nem támogatja.
Mindenesetre a legegyszerűbb módja ennek a .NET-hívás használata. Itt is több lehetőség kínálkozik, speciális formázási opciókkal és anélkül, de ha csak igazán egyszerű real konvertálást szeretne karakterláncsá, ez is elegendő:
Ha ezt a kódot az AOS-en kell futtatni (például kötegelt jobban), először ne felejtse el érvényesíteni a szükséges kódhozzáférési engedélyt. Ebben az esetben ClrInterop típusú InteropPermission szükséges a .NET kód meghívásához, így a teljes kódpélda így nézne ki:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
Ne feledje, hogy ez az egyszerű System::Convert függvény a rendszer aktuális területi beállítását használja a tizedesvessző karakteréhez. Lehet, hogy ez nem probléma az Ön számára, de számomra, aki olyan területen él, ahol vesszőt használnak pont helyett tizedeselválasztóként, további feldolgozást igényelhet, ha például a karakterláncot olyan fájlban kell használni, amelynek más rendszerek számára is olvashatónak kell lennie.