【问题标题】:DataBinding Eval To 2 Decimal Place Doesn't Show 0DataBinding Eval 到 2 小数位不显示 0
【发布时间】:2010-11-10 13:40:30
【问题描述】:
平台:C# ASP.NET 3.5
我有一个 ListView,它构建了一个十进制的 Rate 字段,如果我只是有 <% #Eval("Rate") %>,它会显示 4.5000 而不是 4.5,如果我使用 <% #Eval("Rate","{0:#.##}") %>,它会显示 4.5 但不显示 0
任何关于如何绑定十进制字段但仍显示 0 的建议
谢谢
李
【问题讨论】:
标签:
asp.net
listview
data-binding
【解决方案1】:
在格式中使用#.##意味着它应该隐藏0。改为使用0.00:
<%# Eval("Rate", "{0:0.00}") %>
查看这些示例:
String.Format("{0:0.00}", 123.4567); // "123.46"
String.Format("{0:0.00}", 123.4); // "123.40"
String.Format("{0:0.00}", 123.0); // "123.00"
String.Format("{0:0.##}", 123.4567); // "123.46"
String.Format("{0:0.##}", 123.4); // "123.4"
String.Format("{0:0.##}", 123.0); // "123"
【解决方案2】:
你试过了吗:
<% #Eval("Rate","{0:F2}") %>
【解决方案3】:
这可行,它还添加了一个组分隔符:<%# Eval("Rate", "{0:n2}")%>
【解决方案4】:
除了使用<% #Eval("Rate","{0:F2}") %>
我也使用:style="text-align:right"
而不是尝试使格式执行正确的位数。
当然这也可以是 css 文件中的 CSS 设置,而不是内联 CSS。
【解决方案5】:
在服务器端将 Decimal 2 位转换为 1 位。
(十进制值).ToString("0.0");