Dynamics AX 2012 で実数をすべて小数点付きの文字列に変換する
出版された: 2025年2月16日 10:40:37 UTC
最終更新日 2026年1月12日 8:50:50 UTC
この記事では、X++ コード例を含め、Dynamics AX 2012 ですべての小数点値を保持しながら浮動小数点数を文字列に変換する方法について説明します。
Convert a Real to String with All Decimals in Dynamics AX 2012
この投稿の情報は Dynamics AX 2012 R3 に基づいています。他のバージョンでは有効ではない可能性があります。
時々、実数を文字列に変換する必要があります。通常はstrFmt()に渡すだけで十分ですが、この関数は常に小数点以下2桁に丸められてしまい、必ずしも期待どおりに動作しないことがあります。
次に、num2str() 関数があります。これは適切に機能しますが、必要な小数点以下の桁数と文字数を事前に知っておく必要があります。
数値を、すべての数字と小数点を含む文字列に変換したい場合はどうすればよいでしょうか。どういうわけか、これはいつも私が Google 検索しなければならないことです。なぜなら、これは驚くほどわかりにくい操作であり、めったに実行しないため、正確な方法を思い出せないからです。ほとんどのプログラミング言語では、実数を空の文字列に連結するだけで済むと思いますが、X++ ではそれがサポートされていません。
とにかく、私が見つけた最も簡単な方法は、.NET呼び出しを使うことです。こちらにも複数のオプションがあり、高度な書式設定の有無も選択できますが、実数を文字列に変換するだけの単純な変換であれば、これで十分です。
このコードをAOS(例えばバッチジョブ)上で実行する場合は、まず必要なコードアクセス権限をアサートすることを忘れないでください。この場合、.NETコードを呼び出すにはClrInterop型のInteropPermissionが必要になります。完全なコード例は以下のようになります。
stringValue = System.Convert::ToString(realValue);
CodeAccessPermission::revertAssert();
このシンプルなSystem::Convert関数は、小数点文字に関してシステムの現在のロケールを使用することに注意してください。これはあなたにとっては問題にならないかもしれませんが、私のような地域では小数点の区切りとしてピリオドではなくカンマが使用されるため、例えば他のシステムで読み取り可能なファイルでこの文字列を使用する必要がある場合、追加の処理が必要になる可能性があります。
さらに読む
この投稿が気に入った場合は、次の提案も気に入るかもしれません:
- Dynamics AX 2012 の SysOperation データ コントラクト クラスでクエリを使用する
- SysExtension フレームワークを使用して Dynamics AX 2012 でインスタンス化するサブクラスを見つける
- Dynamics AX 2012 の X++ から AIF ドキュメント サービスを直接呼び出す
