I-convert ang Real sa String gamit ang Lahat ng Decimal sa Dynamics AX 2012
Nai-publish: Marso 19, 2025 nang 9:34:15 PM UTC
Sa artikulong ito, ipinapaliwanag ko kung paano i-convert ang isang floating point number sa isang string habang pinapanatili ang lahat ng mga decimal sa Dynamics AX 2012, kabilang ang isang halimbawa ng X++ code.
Convert a Real to String with All Decimals in Dynamics AX 2012
Ang impormasyon sa post na ito ay batay sa Dynamics AX 2012 R3. Maaaring hindi ito wasto para sa ibang mga bersyon.
Paminsan-minsan, kailangan kong i-convert ang isang tunay na numero sa isang string. Karaniwan, sapat na ang pagpapasa nito sa strFmt(), ngunit ang function na iyon ay laging nire-round off sa dalawang decimal, na hindi laging angkop sa gusto ko.
Mayroon ding num2str() function, na gumagana nang maayos, ngunit nangangailangan na alam mo nang maaga kung ilang decimal at karakter ang nais mo.
Paano kung gusto mo lamang i-convert ang numero sa isang string, kasama ang lahat ng digit at decimal? Sa ilang dahilan, ito ay isang bagay na laging nagpapa-Google sa akin dahil medyo mahirap gawin at ginagawa ko ito nang bihirang kaya hindi ko madalas maalala kung paano - sa karamihan ng mga programming languages, inaasahan kong maaari mong i-concatenate ang tunay na numero sa isang empty string, ngunit hindi ito sinusuportahan ng X++.
Sa anumang kaso, ang pinakamadaling paraan na nahanap ko upang gawin ito ay sa pamamagitan ng paggamit ng .NET call. Mayroong maraming mga opsyon dito, may at walang mga opsyon para sa advanced formatting, ngunit kung nais mo lamang ng simpleng conversion ng isang tunay na numero sa isang string, sapat na ito:
Kung ang code na ito ay tatakbo sa AOS (halimbawa sa isang batch job), tandaan na i-assert ang kinakailangang code access permission muna. Sa kasong ito, kakailanganin mo ng isang InteropPermission ng uri ng ClrInterop upang tawagan ang .NET code, kaya ang buong halimbawa ng code ay magiging ganito:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
Mag-ingat na ang simpleng System::Convert function na ito ay gumagamit ng kasalukuyang locale ng sistema kaugnay sa character ng decimal point. Maaaring hindi ito isyu para sa iyo, ngunit para sa akin na nakatira sa isang lugar kung saan ang kuwit ang ginagamit kaysa tuldok bilang decimal separator, maaaring mangailangan ng karagdagang proseso kung ang string halimbawa ay kailangang gamitin sa isang file na kailangang basahin ng ibang mga sistema.