DataFormatString格式错误百分比

时间:2012-06-24 15:19:47

标签: c# asp.net .net

我在数据库中有这个字段:

数据类型:数字(7,3)

所以允许最大数量

9999.99

进入数据库。

我把号码

10.000

进入数据库,现在我正在使用以下方法检出数据库:

<asp:GridView>

我指定:

<asp:BoundField DataFormatString="{0:p}" />

并输出

1,000.00%

假设是

10.00%

为什么不呢?

我也不能把&lt; %%&gt;将服务器运行时标记转换为:

<asp:TemplateField />

为什么会这样?

2 个答案:

答案 0 :(得分:11)

百分比存储为小数,其中0 = 0%,1 = 100%。您应该将值存储为0.1,而不是10。

<asp:BoundField DataFormatString="{0:p}" />行会将您的值格式设置为10.000到1,000.00%。

请参阅here

答案 1 :(得分:8)

它的行为与MSDN上Standard Numeric Format Strings页面中描述的完全相同:

  

结果:数字乘以100并以百分号显示。

所以要么你不应该使用那个格式字符串,你应该将你的值保持为1的比例,而不是百分比。