web-dev-qa-db-ja.com

パーセント値の小数点をフォーマットしますか?

私が欲しいのは次のようなものです:

String.Format("Value: {0:%%}.", 0.8526)

%%は、そのフォーマットプロバイダーまたは私が探しているものです。結果:Value: %85.26.

私は基本的にwpfバインディングに必要ですが、最初に一般的なフォーマットの問題を解決しましょう:

<TextBlock Text="{Binding Percent, StringFormat=%%}" />
184
Shimmy

P format string を使用します。これは文化によって異なります。

String.Format("Value: {0:P2}.", 0.8526) // formats as 85.26 % (varies by culture)
392
Michael Haren

カルチャに依存する書式を脇に置き、値と「%」の間にスペースがあるかどうか、および「%」が先頭か末尾かを明示的に制御する正当な理由がある場合は、NumberFormatInfoを使用できます。 PercentPositivePattern および PercentNegativePattern プロパティ。

たとえば、末尾に「%」があり、値と「%」の間にスペースがない10進数値を取得するには、次のようにします。

myValue.ToString("P2", new NumberFormatInfo { PercentPositivePattern = 1, PercentNegativePattern = 1 });

より完全な例:

using System.Globalization; 

...

decimal myValue = -0.123m;
NumberFormatInfo percentageFormat = new NumberFormatInfo { PercentPositivePattern = 1, PercentNegativePattern = 1 };
string formattedValue = myValue.ToString("P2", percentageFormat); // "-12.30%" (in en-us)
9
Jon Schneider

あなたがあなたのエントリのような数字を保持できるフォーマットを使用したい場合、このフォーマットは私のために働きます:"# \\%"

1
David Neira

このコードはあなたを助けるかもしれません:

double d = double.Parse(input_value);
string output= d.ToString("F2", CultureInfo.InvariantCulture) + "%";
0
Nitika Chopra