ホームページ >バックエンド開発 >C++ >読みやすくするために、C で大きな数値をカンマでフォーマットするにはどうすればよいですか?

読みやすくするために、C で大きな数値をカンマでフォーマットするにはどうすればよいですか?

Barbara Streisand
Barbara Streisandオリジナル
2024-10-26 20:11:02494ブラウズ

How can I format large numbers with commas in C   for better readability?

C での数値のカンマ書式化

多くのシナリオでは、読みやすくするために数値をカンマで表現する必要があります。 C では、次のアプローチを使用してこれを効率的に実現できます。

std::locale および std::stringstream を使用する

この方法では、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 の書式設定

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 サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。