Miklix

Dynamics AX 2012 で実数をすべて小数点付きの文字列に変換する

出版された: 2025年2月16日 10:40:37 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 呼び出しを使用することです。ここでも、高度な書式設定のオプションの有無にかかわらず、複数のオプションがありますが、実数を文字列に非常に単純に変換するだけであれば、これで十分です。

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

このコードを AOS で実行する場合 (たとえば、バッチ ジョブ内)、最初に必要なコード アクセス許可をアサートすることを忘れないでください。この場合、.NET コードを呼び出すには ClrInterop タイプの InteropPermission が必要になるため、完全なコード例は次のようになります。

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

この単純な System::Convert 関数は、小数点文字に関してシステムの現在のロケールを使用することに注意してください。これはあなたにとっては問題にならないかもしれませんが、小数点の区切りとしてピリオドではなくコンマが使用される地域に住んでいる私にとっては、たとえば他のシステムで読み取り可能である必要があるファイルで文字列を使用する必要がある場合、さらに処理が必要になる可能性があります。

BlueskyでシェアFacebookでシェアLinkedInでシェアTumblrでシェアXでシェアLinkedInでシェアPinterest にピン留めする

ミッケル・バン・クリステンセン

著者について

ミッケル・バン・クリステンセン
ミッケルはmiklix.comの開発者でありオーナーです。プロのコンピューター・プログラマー/ソフトウェア開発者として20年以上の経験を持ち、現在はヨーロッパの大手IT企業に常勤している。ブログを書いていないときは、さまざまな興味、趣味、活動に余暇を費やしている。