为什么百分比格式说明符乘以100?

时间:2011-11-15 05:20:55

标签: c# string-formatting

(找不到重复)

有谁知道原因:

http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx#PFormatString

'p'字符串格式为百分比,在使用百分号进行格式化之前将值乘以100?

  

百分比(“P”)格式说明符

     

百分比(“P”)格式说明符将数字乘以100和   将其转换为表示百分比的字符串。 精度   说明符表示所需的小数位数。如果   省略精度说明符,提供默认的数字精度   使用当前的PercentDecimalDigits属性。

在格式化之前,有没有阻止值乘以100?而不是做:

(value / 100).ToString("p")

3 个答案:

答案 0 :(得分:20)

至于为什么,“百分比”的字面意思是“百分之一”,所以50%在数学上等同于0.50。至于格式化,为什么不添加百分号?

value + "%"

......或类似的东西:

value.ToString("#.00\\%")

答案 1 :(得分:5)

您通常使用代码中的小数百分比,例如0.51.0,但是用户喜欢看到最后添加百分号的漂亮整数。

百分比表示“超出100,显然您的小数百分比超出1。因此,.ToString("p")会将您的号码乘以100,然后附加百分号。

这只是定义。

答案 2 :(得分:1)

如果您不想将该值乘以100,只需要输入值之外的百分比%,即如果输入值则为VALUE.00%,否则默认为0.00%,则答案为

PERCENTAGE_FORMAT =“#0.00 \%”;

这绝对对我有用!!