【问题标题】: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】:

    这可行,它还添加了一个组分隔符:&lt;%# Eval("Rate", "{0:n2}")%&gt;

    【讨论】:

      【解决方案4】:

      除了使用&lt;% #Eval("Rate","{0:F2}") %&gt; 我也使用:style="text-align:right" 而不是尝试使格式执行正确的位数。 当然这也可以是 css 文件中的 CSS 设置,而不是内联 CSS。

      【讨论】:

        【解决方案5】:

        在服务器端将 Decimal 2 位转换为 1 位。 (十进制值).ToString("0.0");

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-09-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-02-09
          • 1970-01-01
          • 2019-03-11
          • 1970-01-01
          相关资源
          最近更新 更多