如何在c#(html)中使用System.Math.Round(double,int)

时间:2013-06-24 20:10:18

标签: c# asp.net asp.net-mvc-3 razor

    @foreach (var item in ViewBag.OrgTable.Rows)
    {
       @foreach (var p in (List<MvcProject.Models.orgModel>)ViewBag.params)
        { 

          decimal temp = Math.Round(item[p.Abbreviation], (int)p.Count);
          @(temp)

         }
    }

使用上面的代码行给出了以下错误 -

'System.Math.Round(double,int)'的最佳重载方法匹配有一些无效的参数

在上面,缩写是一个字符串,Count是一个小数。我不确定上面的System.Math.Round(double,int)用法是什么问题

3 个答案:

答案 0 :(得分:2)

试试double.Parse(abbreviation)。它需要显式转换为double。

答案 1 :(得分:2)

  

缩写是一个字符串,Count是一个小数。我不确定是什么   上面的System.Math.Round(double,int)用法错误

你刚回答了自己的问题。该方法需要一个double和一个int,并且你试图将它交给一个字符串和一个小数。您将不得不转换这些类型,例如通过调用double.Parse(p.Abbreviation)将字符串转换为double。

答案 2 :(得分:2)

如果itemDataRow,那么以下内容应该有效:

Math.Round((double)item[p.Abbreviation], (int)p.Count);