(找不到重复)
有谁知道原因:
http://msdn.microsoft.com/en-us/library/dwhawy9k.aspx#PFormatString
'p'字符串格式为百分比,在使用百分号进行格式化之前将值乘以100?
百分比(“P”)格式说明符
百分比(“P”)格式说明符将数字乘以100和 将其转换为表示百分比的字符串。 精度 说明符表示所需的小数位数。如果 省略精度说明符,提供默认的数字精度 使用当前的PercentDecimalDigits属性。
在格式化之前,有没有阻止值乘以100?而不是做:
(value / 100).ToString("p")
答案 0 :(得分:20)
至于为什么,“百分比”的字面意思是“百分之一”,所以50%在数学上等同于0.50
。至于格式化,为什么不添加百分号?
value + "%"
......或类似的东西:
value.ToString("#.00\\%")
答案 1 :(得分:5)
您通常使用代码中的小数百分比,例如0.5
和1.0
,但是用户喜欢看到最后添加百分号的漂亮整数。
百分比表示“超出100
”,显然您的小数百分比超出1
。因此,.ToString("p")
会将您的号码乘以100
,然后附加百分号。
这只是定义。
答案 2 :(得分:1)
如果您不想将该值乘以100,只需要输入值之外的百分比%,即如果输入值则为VALUE.00%,否则默认为0.00%,则答案为
PERCENTAGE_FORMAT =“#0.00 \%”;
这绝对对我有用!!