Miklix

Badilisha Real kuwa Mfuatano wenye Desimali Zote katika Dynamics AX 2012

Iliyochapishwa: 16 Februari 2025, 10:41:16 UTC
Mara ya mwisho kusasishwa: 12 Januari 2026, 08:52:33 UTC

Katika makala haya, ninaelezea jinsi ya kubadilisha nambari ya nukta inayoelea kuwa kamba huku nikihifadhi desimali zote katika Dynamics AX 2012, ikijumuisha mfano wa msimbo wa X++.


Ukurasa huu ulitafsiriwa kwa mashine kutoka kwa Kiingereza ili kuifanya iweze kupatikana kwa watu wengi iwezekanavyo. Kwa bahati mbaya, utafsiri wa mashine bado sio teknolojia iliyokamilishwa, kwa hivyo makosa yanaweza kutokea. Ukipenda, unaweza kutazama toleo asili la Kiingereza hapa:

Convert a Real to String with All Decimals in Dynamics AX 2012

Taarifa katika chapisho hili inategemea Dynamics AX 2012 R3. Huenda ikawa halali au isiwe halali kwa matoleo mengine.

Mara kwa mara, ninahitaji kubadilisha nambari halisi kuwa kamba. Kawaida, kuipitisha tu kwa strFmt() inatosha, lakini kitendakazi hicho huwa kinazunguka hadi desimali mbili, ambayo sio kila wakati ninayotaka.

Kisha kuna kitendakazi cha num2str(), ambacho hufanya kazi vizuri, lakini kinakuhitaji ujue mapema ni desimali ngapi na herufi unazotaka.

Vipi kama unataka tu nambari ibadilishwe kuwa mfuatano, yenye tarakimu na desimali zote? Kwa sababu fulani, hili ni jambo ambalo hunifanya nicheze kwenye Google kila mara kwa sababu ni jambo lisiloeleweka kwa kushangaza kufanya hivyo na mimi hufanya hivyo mara chache sana kiasi kwamba kwa kawaida siwezi kukumbuka jinsi gani hasa - katika lugha nyingi za programu, ningetarajia kwamba unaweza kuunganisha tu mfuatano halisi kuwa mfuatano mtupu, lakini X++ haiungi mkono hilo.

Kwa vyovyote vile, njia rahisi zaidi ambayo nimeipata kufanya hivi ni kwa kutumia simu ya .NET. Kuna chaguzi nyingi hapa pia, pamoja na na bila chaguzi za umbizo la hali ya juu, lakini ikiwa unataka tu ubadilishaji rahisi wa a real kuwa kamba, hii itatosha:

stringValue = System.Convert::ToString(realValue);

Ikiwa msimbo huu utaendeshwa kwenye AOS (kwa mfano katika kazi ya kundi), kumbuka kudai ruhusa muhimu ya ufikiaji wa msimbo kwanza. Katika hali hii utahitaji InteropPermission ya aina ya ClrInterop ili kupiga msimbo wa .NET, kwa hivyo mfano kamili wa msimbo ungeonekana kama hivi:

new InteropPermission(InteropKind::ClrInterop).assert();
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();

Fahamu kwamba kitendakazi hiki rahisi cha System::Convert hutumia eneo la sasa la mfumo kuhusiana na herufi ya nukta ya desimali. Hili huenda lisiwe tatizo kwako, lakini kwangu mimi ninayeishi katika eneo ambalo koma hutumika badala ya nukta kama kitenganishi cha desimali, inaweza kuhitaji usindikaji zaidi ikiwa mfuatano kwa mfano unahitaji kutumika katika faili ambayo lazima isomeke na mifumo mingine.

Kusoma Zaidi

Ikiwa ulifurahia chapisho hili, unaweza pia kupenda mapendekezo haya:


Shiriki kwenye BlueskyShiriki kwenye FacebookShiriki kwenye LinkedInShiriki kwenye TumblrShiriki kwenye XShiriki kwenye LinkedInBandika kwenye Pinterest

Mikkel Christensen

Kuhusu Mwandishi

Mikkel Christensen
Mikkel ndiye muundaji na mmiliki wa miklix.com. Ana uzoefu wa zaidi ya miaka 20 kama mtaalamu wa kupanga programu/programu za kompyuta na kwa sasa ameajiriwa muda wote kwa shirika kubwa la IT la Ulaya. Wakati si kublogi, yeye hutumia wakati wake wa ziada kwenye safu nyingi za mapendeleo, vitu vya kufurahisha, na shughuli, ambazo zinaweza kuonyeshwa kwa kadiri fulani katika mada anuwai zinazozungumziwa kwenye wavuti hii.