使用C#String.Format"{0:p0}",没有百分号前面的前导空格

Jul*_*s A 61 c# string

使用表达式

String.Format("{0:p0}",0.10) gives 10 %
Run Code Online (Sandbox Code Playgroud)

如何返回10%(没有10和%之间的空格)?

文化:en-GB

Chr*_*lsh 75

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


Jay*_*ggs 31

使用NumberFormatInfo.PercentPositivePattern属性:

NumberFormatInfo numberInfo = new NumberFormatInfo();
numberInfo.PercentPositivePattern = 1;
Console.WriteLine(String.Format("{0}", 0.10.ToString("P0",numberInfo)));
Run Code Online (Sandbox Code Playgroud)

  • 不能在XAML中使用. (2认同)

Yuc*_*uck 9

如果你没有使用Format()就可以做到0.10F.ToString("0%");.

  • `0.00%`如果你想要两位小数. (3认同)

Vla*_*mir 6

仅增强@Jay Riggs的响应,并且因为我没有足够的声誉来发表评论,所以我推荐:

String.Format(numberInfo, "{0:p0}", 0.10);
Run Code Online (Sandbox Code Playgroud)

我认为通过这种方式可以解决必须格式化多个值的情况:

String.Format(numberInfo, "{0:p0} {1:p0}", 0.10, 0.20);
Run Code Online (Sandbox Code Playgroud)


小智 5

更改文化信息。

对于某些文化,它显示 %10 、 % 10 、 10 % 、 10% 、 .1 、 .10 、 0.1 、 0.10 ...

我会检查哪个 CultureInfo 给你“10%”

  • 这是正确的答案。此处使用自定义格式字符串将破坏您将来可能想要支持的任何全球化。 (2认同)