C#
 Computer >> コンピューター >  >> プログラミング >> C#

C#のパーセント(P)書式指定子の使い方を解説

C#におけるパーセント("P")書式指定子は、数値に100を掛けてパーセンテージ形式の文字列に変換するために使用されます。数値を「%」記号付きの文字列として表現できるため、割合や比率を表示する際に非常に便利です。

基本的な使い方

まず、次のようなdouble型の変数を用意します。

double val = .975746;

この変数に対して("P")書式指定子を適用すると、結果は以下のようになります。

97.57 %

同様に、("P1")を指定すると、小数点以下が1桁のみ表示されます。

97.6%

このように、Pの後ろに数字を付けることで、小数点以下の表示桁数を自由に制御できます。桁数を指定しない場合のデフォルトは2桁です。

サンプルコード

実際のコード例を見てみましょう。

using System;
using System.Globalization;
class Demo {
    static void Main() {
        double val = .975746;
        Console.WriteLine(val.ToString("P", CultureInfo.InvariantCulture));
        Console.WriteLine(val.ToString("P1", CultureInfo.InvariantCulture));
        Console.WriteLine(val.ToString("P4", CultureInfo.InvariantCulture));
    }
}

実行結果

97.57 %
97.6 %
97.5746 %

ポイント解説

上記の例では、CultureInfo.InvariantCultureを使用しています。これにより、カルチャ(地域設定)に依存しない一貫した出力が得られます。カルチャによって小数点記号や%記号の位置が異なる場合があるため、国際的なアプリケーションではInvariantCultureの指定を検討するとよいでしょう。

また、ToString("P")メソッド以外にも、string.Formatや文字列補間($"{val:P}")でも同じ書式指定子を使用できます。用途に応じて使い分けることで、コードの可読性を高められます。

  1. C#のラウンドトリップ(R)書式指定子とは?使い方を解説

    ラウンドトリップ(R)書式指定子とはC#のラウンドトリップ(R)書式指定子は、Single、Double、BigInteger の各型でサポートされている標準の数値書式です。この書式指定子を使用すると、数値を文字列に変換した後、その文字列を再度解析(パース)した際に、必ず元と同じ数値に復元されることが保証されます。つまり、変換による精度の損失がないことが保証されるため、シリアライズやログ出力など、値を厳密に保持したい場面で役立ちます。基本的な使い方まず、double型の変数を用意します。double doubleVal = 0.91234582637;次に、ToString()メソッドを呼び出

  2. C#でTimeSpanをhh:mm:ss形式にフォーマットする方法

    C#では、TimeSpan構造体の値を「hh:mm:ss」形式で簡単にフォーマットして表示することができます。カスタム書式指定子を使えば、時間・分・秒を自由な形式で出力可能です。 TimeSpanの設定 まず、フォーマット対象となるTimeSpanオブジェクトを作成します。 TimeSpan ts = new TimeSpan(9, 15, 30); この例では、9時間15分30秒を表すTimeSpanを作成しています。 TimeSpanをフォーマットするには TimeSpanを「hh:mm:ss」形式でフォーマットするには、次のような書式指定文字列を使用します。 {0:hh\:mm\:ss