Miklix

在 Dynamics AX 2012 中將實數轉換為帶有小數的字串

已發佈: 2025年2月16日 上午10:41:06 [UTC]
最後更新: 2026年1月12日 上午8:52:29 [UTC]

在本文中,我將解釋如何在 Dynamics AX 2012 中將浮點數轉換為字串並保留所有小數位,包括一個 X++ 程式碼範例。


該頁面是由英語機器翻譯而來的,以便盡可能多的人可以訪問。不幸的是,機器翻譯還不是一項完善的技術,因此可能會出現錯誤。如果您願意,可以在這裡查看原始英文版本:

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

本文中的資訊是基於 Dynamics AX 2012 R3 版本,可能不適用於其他版本。

我偶爾需要將實數轉換為字串。通常,只需將其傳遞給 strFmt() 函數即可,但該函數總是四捨五入到小數點後兩位,這並非我所願。

還有 num2str() 函數,它的確很好用,但需要你事先知道你想要多少位小數和多少個字元。

如果只想把數字轉換成包含所有數字和小數的字串呢?不知為何,這個問題總是讓我忍不住去谷歌搜索,因為它出乎意料地冷門,而且我很少用到,所以通常記不清具體步驟——在大多數編程語言中,我以為可以直接把數字和一個空字符串連接起來,但 X++ 並不支持這種做法。

總之,我發現最簡單的方法是使用 .NET 呼叫。這裡也有多種選項,包括帶有高級格式化選項和不帶高級格式化選項的,但如果您只是想將實數轉換為字串,那麼以下方法就足夠了:

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

如果這段程式碼要在 AOS 上執行(例如在批次作業中),請務必先取得必要的程式碼存取權。在這種情況下,您需要一個類型為 ClrInterop 的 InteropPermission 才能呼叫 .NET 程式碼,因此完整的程式碼範例如下所示:

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

請注意,這個簡單的 System::Convert 函數會使用系統目前區域設定中的小數點分隔符號。這可能對您來說不是問題,但對於我這種居住在以逗號而非句點作為小數分隔符號的地區的人來說,如果字串需要用於其他系統必須能夠讀取的文件中,則可能需要進行進一步處理。

進一步閱讀

如果您喜歡這篇文章,您可能也會喜歡這些建議:


分享至 Bluesky在 Facebook 分享在 LinkedIn 分享在 Tumblr 上分享分享至 X在 LinkedIn 分享固定在 Pinterest 上

Mikkel Christensen

關於作者

Mikkel Christensen
麥可 是 miklix.com 的創建者和所有者。他有超過 20 年的專業電腦程式設計師/軟體開發人員經驗,目前全職受僱於一家歐洲大型 IT 公司。不寫部落格時,他會將業餘時間花在各種各樣的興趣、愛好和活動上,這在一定程度上反映在本網站所涵蓋的主題的多樣性上。