使用C#String.Format“{0:p0}”在百分号前没有前导空格

使用expression式

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

我如何得到这个返回10% (没有10和%之间的空间)?

文化:en-GB

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

使用NumberFormatInfo.PercentPositivePattern属性 :

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

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

只是加强@Jay Riggs的回应,而且因为我没有足够的评价来评价,我会跟着去:

 String.Format(numberInfo, "{0:p0}", 0.10); 

我想这样你覆盖的情况下,你必须格式化多个值:

 String.Format(numberInfo, "{0:p0} {1:p0}", 0.10, 0.20); 
 String.Format("{0:p0}",0.10).Replace(" ",""); 

要添加到其他答案,这里是相关的文档:

  • 标准数字格式string
  • 自定义数字格式string

试试这个:

0.1.ToString( “0%”)

更改文化信息。

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

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