Miklix

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++.


Kjo faqe u përkthye me makinë nga anglishtja për ta bërë të aksesueshme për sa më shumë njerëz. Fatkeqësisht, përkthimi me makinë nuk është ende një teknologji e përsosur, kështu që mund të ndodhin gabime. Nëse preferoni, mund ta shikoni versionin origjinal në anglisht këtu:

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ë:

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

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:

new InteropPermission(InteropKind::ClrInterop).assert();
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:


Shpërndaje në BlueskyShpërndaje në FacebookNdani në LinkedInShpërndaje në TumblrShpërndaje në XNdani në LinkedInPin në Pinterest

Mikkel Christensen

Rreth Autorit

Mikkel Christensen
Mikkel është krijuesi dhe pronari i miklix.com. Ai ka mbi 20 vjet përvojë si programues profesional kompjuteri/zhvillues softuerësh dhe aktualisht është i punësuar me kohë të plotë për një korporatë të madhe evropiane IT. Kur nuk bën blog, ai e kalon kohën e lirë në një gamë të gjerë interesash, hobish dhe aktivitetesh, të cilat mund të reflektohen në një farë mase në shumëllojshmërinë e temave të mbuluara në këtë faqe interneti.