C でのカンマを使用した数値の書式設定 : 包括的なソリューション
C では、カンマを使用して数値を書式設定することは、可読性を向上させる一般的なタスクであり、数値の明確さ。この記事では、std::locale と std::stringstream の組み合わせを使用してこれを実現する堅牢な方法を紹介します。
解決策
私たちのソリューションの中核は次のとおりです。 std::locale を利用してローカライズされた書式設定コンテキストを確立し、std::stringstream を利用して書式設定された結果をキャプチャします。一般的な数値型 T を受け取る FormatWithCommas テンプレート メソッドは、次の手順に従います。
<code class="cpp">template<class T> std::string FormatWithCommas(T value) { std::stringstream ss; ss.imbue(std::locale("")); ss << std::fixed << value; return ss.str(); }
使用例
このメソッドの使用は簡単です。例:<code class="cpp">std::string result1 = FormatWithCommas(7800); std::string result2 = FormatWithCommas(5100100); std::string result3 = FormatWithCommas(201234567890); // Outputs: // result1 = "7,800" // result2 = "5,100,100" // result3 = "201,234,567,890"
Double の処理
提供されたメソッドは、Double も処理するように簡単に変更できます。テンプレート宣言の T を double に置き換えるだけです:<code class="cpp">template<> std::string FormatWithCommas(double value) { std::stringstream ss; ss.imbue(std::locale("")); ss << std::fixed << value; return ss.str(); }</code>
移植性に関する考慮事項
ロケールを指定するための "" の使用は完全には機能しない可能性があることに注意してください。異なるシステム間で移植可能。一貫した動作を確保するには、目的のロケールを明示的に指定することを検討してください。以上がC で std::locale と std::stringstream を使用して数値をカンマでフォーマットするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。