3

パーセンテージデータのフォーマット方法もその一部CultureInfoですか?フォーマットとは、47.3と表示するか0.473と表示するかなどです。

私の実際の問題は、DE言語の場合は47.3%の表記を使用し、その他の場合は0.473を使用する必要があることです。したがって、これらも小数点に使用される記号のように文化に依存するかどうかを調べています。

4

2 に答える 2

7

そのためには、次のようなコードを作成する必要があります。

string.Format("Value: {0:P2}.", 0.473) // formats as 47.3 % (varies by culture)

カルチャに基づいてフォーマットを管理するのはフォーマットP文字列です。

Pフォーマット指定子は、10進表記(1は100%、0.5は50%など)に基づいているため、数値に100を掛けることは注目に値します。

したがって、de-DE文化を使用して次のようになります。

Thread.CurrentThread.CurrentCulture = new CultureInfo("de-DE");

Console.WriteLine("1. " + string.Format("Value: {0:P2}.", 0.473));
Console.WriteLine("2. " + string.Format("Value: {0:P2}.", 47.3));

出力します:

  1. 47.30%
  2. 4,730.00%

これは、英国文化で出力されるものと同じen-GBです。

トルコ文化を使用して同じコードを実行すると、形式の違いが強調されます(23%ではなく%23を使用するため)。

Thread.CurrentThread.CurrentCulture = new CultureInfo("tr-TR");

上記のコードを実行すると(上記のドイツ文化に使用されている2行を印刷)、次のように出力されます。

  1. %47.30
  2. %4,730.00
于 2013-02-26T09:34:06.333 に答える
3

パーセンテージデータのフォーマット方法もその一部CultureInfoですか?

はい、しかしあなたが望む方法ではありません。Pフォーマット指定子を使用できますが、0.473としてフォーマットすることはないと思います。

パーセント( "P")形式指定子は、数値に100を掛けて、パーセンテージを表す文字列に変換します。精度指定子は、必要な小数点以下の桁数を示します。精度指定子を省略すると、現在のPercentDecimalDigitsプロパティによって提供されるデフォルトの数値精度が使用されます。

したがって、カルチャは10進数の桁数、小数点記号、およびおそらく数値の処理に影響しますが、「値に100を掛ける」部分には何も影響しないと思います。

于 2013-02-26T09:34:30.623 に答える