@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)用法是什么问题
答案 0 :(得分:2)
试试double.Parse(abbreviation)
。它需要显式转换为double。
答案 1 :(得分:2)
缩写是一个字符串,Count是一个小数。我不确定是什么 上面的System.Math.Round(double,int)用法错误
你刚回答了自己的问题。该方法需要一个double和一个int,并且你试图将它交给一个字符串和一个小数。您将不得不转换这些类型,例如通过调用double.Parse(p.Abbreviation)将字符串转换为double。
答案 2 :(得分:2)
如果item
是DataRow
,那么以下内容应该有效:
Math.Round((double)item[p.Abbreviation], (int)p.Count);