多くのシナリオでは、読みやすくするために数値をカンマで表現する必要があります。 C では、次のアプローチを使用してこれを効率的に実現できます。
この方法では、std::locale ライブラリを利用して、書式設定を適用する必要があります。次に、テンプレートベースの実装を示します。
<code class="cpp">#include <iomanip> #include <locale> template<class T> std::string FormatWithCommas(T value) { std::stringstream ss; ss.imbue(std::locale("")); ss << std::fixed << value; return ss.str(); }</code>
ロケールを明示的に "" (空の文字列) に設定すると、デフォルトのロケールが使用されます。これは通常、ユーザーのシステム ロケール設定と一致します。
Double も処理するには、わずかな変更が必要です。
<code class="cpp">template<class T> std::string FormatWithCommas(T value) { std::stringstream ss; ss.imbue(std::locale("")); ss << std::fixed << std::setprecision(2) << value; return ss.str(); }</code>
表示される小数点以下の桁数を制御するために std::setprecision メソッドが追加されます。
FormatWithCommas 関数の使用法を説明するには:
<code class="cpp">std::string result1 = FormatWithCommas(7800); std::string result2 = FormatWithCommas(5100100); std::string result3 = FormatWithCommas(201234567890); // result1 = "7,800" // result2 = "5,100,100" // result3 = "201,234,567,890"</code>
このアプローチでは、異なるロケール間での移植性の問題に直面する可能性があることに注意することが重要です。 。したがって、使用するロケールを慎重に検討するか、必要に応じてカスタム ロケール指定メカニズムを採用することをお勧めします。
以上が読みやすくするために、C で大きな数値をカンマでフォーマットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。