格式百分比值的小数?
我想要的是这样的:
String.Format("Value: {0:%%}.", 0.8526)
其中%%是格式提供者或任何我正在寻找。 应该结果: Value: %85.26.
。
我基本上需要它的wpf绑定,但首先让我们来解决一般的格式问题:
<TextBlock Text="{Binding Percent, StringFormat=%%}" />
使用P
格式string 。 这将因文化而异:
String.Format("Value: {0:P2}.", 0.8526) // formats as 85.26 % (varies by culture)
如果您有充分的理由放弃依赖于文化的格式,并明确控制值与“%”之间是否有空格,并且“%”是前导还是后尾,则可以使用NumberFormatInfo的PercentPositivePattern和PercentNegativePattern属性。
例如,要得到一个带有“%”结尾的小数值,并在值和“%”之间没有空格:
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)
我发现上面的答案是最好的解决scheme,但我不喜欢百分号前的前导空格。 我已经看到了一些复杂的解决scheme,但我只是使用这个替代以上的答案,而不是使用其他舍入解决scheme。
String.Format("Value: {0:P2}.", 0.8526).Replace(" %","%") // formats as 85.26% (varies by culture)