在 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 呼叫。這裡也有多種選項,包括帶有高級格式化選項和不帶高級格式化選項的,但如果您只是想將實數轉換為字串,那麼以下方法就足夠了:
如果這段程式碼要在 AOS 上執行(例如在批次作業中),請務必先取得必要的程式碼存取權。在這種情況下,您需要一個類型為 ClrInterop 的 InteropPermission 才能呼叫 .NET 程式碼,因此完整的程式碼範例如下所示:
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
請注意,這個簡單的 System::Convert 函數會使用系統目前區域設定中的小數點分隔符號。這可能對您來說不是問題,但對於我這種居住在以逗號而非句點作為小數分隔符號的地區的人來說,如果字串需要用於其他系統必須能夠讀取的文件中,則可能需要進行進一步處理。
進一步閱讀
如果您喜歡這篇文章,您可能也會喜歡這些建議:
- 使用 SysExtension 框架找出 Dynamics AX 2012 中要實例化的子類
- Dynamics AX 2012 中出現錯誤“未為資料合約物件定義元資料類別”
- 如何在 Dynamics AX 2012 中從 X++ 程式碼迭代枚舉元素
