我想要的是这样的:
String.Format("Value: {0:%%}.", 0.8526)
%%是该格式提供程序或我正在寻找的任何内容。结果应为:Value: %85.26.
。
对于wpf绑定,我基本上需要它,但首先让我们解决一般的格式设置问题:
<TextBlock Text="{Binding Percent, StringFormat=%%}" />
我想要的是这样的:
String.Format("Value: {0:%%}.", 0.8526)
%%是该格式提供程序或我正在寻找的任何内容。结果应为:Value: %85.26.
。
对于wpf绑定,我基本上需要它,但首先让我们解决一般的格式设置问题:
<TextBlock Text="{Binding Percent, StringFormat=%%}" />
Answers:
使用P
格式字符串。这将因文化而异:
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)
此代码可以帮助您:
double d = double.Parse(input_value);
string output= d.ToString("F2", CultureInfo.InvariantCulture) + "%";
我发现上述答案是最好的解决方案,但我不喜欢在百分号前加空格。我看到了一些复杂的解决方案,但是我只是在上面的答案中使用了Replace替代,而不是使用其他舍入解决方案。
String.Format("Value: {0:P2}.", 0.8526).Replace(" %","%") // formats as 85.26% (varies by culture)
P
格式?