我在数据库中有这个字段:
数据类型:数字(7,3)
所以允许最大数量
9999.99
进入数据库。
我把号码
10.000
进入数据库,现在我正在使用以下方法检出数据库:
<asp:GridView>
我指定:
<asp:BoundField DataFormatString="{0:p}" />
并输出
1,000.00%
假设是
10.00%
为什么不呢?
我也不能把&lt; %%&gt;将服务器运行时标记转换为:
<asp:TemplateField />
为什么会这样?
答案 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的比例,而不是百分比。