私が欲しいのは次のようなものです:
String.Format("Value: {0:%%}.", 0.8526)
%%は、そのフォーマットプロバイダーまたは私が探しているものです。結果:Value: %85.26.
。
私は基本的にwpfバインディングに必要ですが、最初に一般的なフォーマットの問題を解決しましょう:
<TextBlock Text="{Binding Percent, StringFormat=%%}" />
P
format string を使用します。これは文化によって異なります。
String.Format("Value: {0:P2}.", 0.8526) // formats as 85.26 % (varies by culture)
カルチャに依存する書式を脇に置き、値と「%」の間にスペースがあるかどうか、および「%」が先頭か末尾かを明示的に制御する正当な理由がある場合は、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)
あなたがあなたのエントリのような数字を保持できるフォーマットを使用したい場合、このフォーマットは私のために働きます:"# \\%"
このコードはあなたを助けるかもしれません:
double d = double.Parse(input_value);
string output= d.ToString("F2", CultureInfo.InvariantCulture) + "%";