Dynamics AX 2012 konvertējiet reālu par virkni ar visām decimāldaļām
Publicēts: 2025. gada 16. februāris 10:40:43 UTC
Šajā rakstā es paskaidroju, kā pārvērst peldošā komata skaitli par virkni, vienlaikus saglabājot visas decimāldaļas programmā Dynamics AX 2012, tostarp X++ koda piemēru.
Convert a Real to String with All Decimals in Dynamics AX 2012
Šajā ziņā sniegtā informācija ir balstīta uz Dynamics AX 2012 R3. Tas var būt un var nebūt derīgs citām versijām.
Ik pa laikam man ir jāpārvērš reāls skaitlis par virkni. Parasti pietiek tikai ar tās nodošanu strFmt(), taču šī funkcija vienmēr tiek noapaļota līdz diviem cipariem aiz komata, kas ne vienmēr ir tas, ko es vēlos.
Pēc tam ir funkcija num2str(), kas darbojas labi, taču jums jau laikus jāzina, cik decimālskaitļus un rakstzīmes vēlaties.
Ko darīt, ja vēlaties, lai skaitlis tiktu pārveidots par virkni ar visiem cipariem un decimāldaļām? Kādu iemeslu dēļ es vienmēr meklēju Google, jo tas ir pārsteidzoši neskaidrs, un es to daru tik reti, ka parasti nevaru precīzi atcerēties, kā tas notika — vairumā programmēšanas valodu varētu vienkārši savienot reālo ar tukšu virkni, bet X++ to neatbalsta.
Jebkurā gadījumā vienkāršākais veids, kā to izdarīt, ir izmantot .NET zvanu. Šeit ir arī vairākas iespējas — ar un bez papildu formatēšanas opcijām, taču, ja vēlaties vienkārši pārvērst reālu par virkni, pietiks ar to:
Ja šis kods ir jāpalaiž AOS (piemēram, pakešdarbā), atcerieties vispirms pieprasīt nepieciešamo kodu piekļuves atļauju. Šajā gadījumā, lai izsauktu .NET kodu, jums būs nepieciešama ClrInterop tipa InteropPermission, tāpēc pilnais koda piemērs izskatītos apmēram šādi:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
Ņemiet vērā, ka šī vienkāršā funkcija System::Convert izmanto sistēmas pašreizējo lokalizāciju attiecībā uz decimālzīmi. Iespējams, šī problēma jums nav aktuāla, taču man, kas dzīvo apgabalā, kur kā decimāldaļskaitļa atdalītājs tiek izmantots komats, nevis punkts, var būt nepieciešama turpmāka apstrāde, ja, piemēram, virkne ir jāizmanto failā, kam jābūt lasāmam citām sistēmām.