Konvertoni një real në varg me të gjithë numrat dhjetorë në Dynamics AX 2012
Publikuar: 16 shkurt 2025 në 10:46:14 e paradites, UTC
Përditësimi i fundit: 12 janar 2026 në 8:52:41 e paradites, UTC
Në këtë artikull, unë shpjegoj se si të konvertohet një numër me pikë lundruese në një varg duke ruajtur të gjitha numrat dhjetorë në Dynamics AX 2012, duke përfshirë një shembull kodi X++.
Convert a Real to String with All Decimals in Dynamics AX 2012
Informacioni në këtë postim bazohet në Dynamics AX 2012 R3. Mund të jetë ose jo i vlefshëm për versione të tjera.
Herë pas here, më duhet të konvertoj një numër real në një varg. Zakonisht, mjafton vetëm kalimi i tij te strFmt(), por ky funksion gjithmonë rrumbullakoset në dy numra dhjetorë, gjë që nuk është gjithmonë ajo që dua.
Pastaj është funksioni num2str(), i cili funksionon mirë, por kërkon që ju të dini paraprakisht se sa decimale dhe karaktere dëshironi.
Po sikur të dëshironi që numri të konvertohet në një varg, me të gjitha shifrat dhe numrat dhjetorë? Për ndonjë arsye, kjo është diçka që më bën gjithmonë të kërkoj në Google sepse është çuditërisht e paqartë për t'u bërë dhe e bëj aq rrallë sa zakonisht nuk mbaj mend saktësisht se si - në shumicën e gjuhëve të programimit, do të prisja që thjesht të bashkonit numrin real me një varg bosh, por X++ nuk e mbështet këtë.
Sidoqoftë, mënyra më e lehtë që kam gjetur për ta bërë këtë është duke përdorur një thirrje .NET. Ka edhe këtu mundësi të shumta, me dhe pa opsione për formatim të avancuar, por nëse dëshironi vetëm konvertimin shumë të thjeshtë të një real në një varg, kjo do të mjaftojë:
Nëse ky kod do të ekzekutohet në AOS (për shembull në një punë batch), mos harroni të kërkoni më parë lejen e nevojshme të aksesit në kod. Në këtë rast, do t'ju duhet një InteropPermission i tipit ClrInterop për të thirrur kodin .NET, kështu që shembulli i plotë i kodit do të dukej diçka si kjo:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
Kini parasysh se ky funksion i thjeshtë System::Convert përdor vendndodhjen aktuale të sistemit në lidhje me karakterin e pikës dhjetore. Kjo mund të mos jetë problem për ju, por për mua që jetoj në një zonë ku përdoret presja në vend të pikës si ndarës dhjetor, mund të kërkojë përpunim të mëtejshëm nëse vargu, për shembull, duhet të përdoret në një skedar që duhet të jetë i lexueshëm nga sisteme të tjera.
Lexime të mëtejshme
Nëse ju pëlqeu ky postim, mund t'ju pëlqejnë edhe këto sugjerime:
- Gabim "Asnjë klasë metadata e përcaktuar për objektin e kontratës së të dhënave" në Dynamics AX 2012
- Formatimi i fijeve me Macro dhe strFmt në Dynamics AX 2012
- Dallimi midis të dhënave() dhe buf2Buf() në Dynamics AX 2012
