我无法理解为什么"指定演员阵容无效异常" 在这里抛出:
c#code:
当它到达div
属性时抛出异常,我试图将m.HadapGoalPercent
的数据类型也改为单一和双,但它不起作用
x => x.Field<float>("HadapGoalPercent")
认为月类中 for (int i = 0; i < dt.Rows.Count; i++)
{
Sales.Month m = new Sales.Month(Yearnum, (byte)(i+1));
m.HadapGoal = dt.AsEnumerable().Where(x => x.Field<int>("MonthNum") == i + 1).Select(x => x.Field<int>("HadapGoalIncome")).Single();
m.ShotefGoal = dt.AsEnumerable().Where(x => x.Field<int>("MonthNum") == i + 1).Select(x => x.Field<int>("ShotefGoalIncome")).Single();
m.HadapGoalPercent = dt.AsEnumerable().Where(x => x.Field<int>("MonthNum") == i + 1).Select( x => x.Field<float>("HadapGoalPercent")).SingleOrDefault();
m.ShotefGoalPercent = dt.AsEnumerable().Where(x => x.Field<int>("MonthNum") == i + 1).Select(x => x.Field<float>("ShotefGoalPercent")).SingleOrDefault();
months.Add(m);
}
和ShotefGoalPercent
属性的定义:
HadapGoalPercent
那是dt datatable:
(HadapGoalPercent和ShotefGoalPercent在sql数据库中定义为十进制(5,4))
非常感谢您的时间和考虑
答案 0 :(得分:1)
根据我的评论,我不确定为什么你不只是作为小数点进行投射,因为这就是你在数据库中存储的内容。但是,如果你真的希望这是一个双倍,你可以尝试:
Convert.ToDouble(value)
根据您传入的小数位数,您应该没问题。使用非常大的小数,你会冒失去精确度的风险,但正如我所说,我不认为这对你来说是一个问题。