我只想舍入来自datatable的值,Data来自SQL到datable.Also datatable有空值我觉得这个问题但请你检查我
string Maxmonthlytable = Math.Round((decimal)monthlytable.Rows[u][3], 2, MidpointRounding.AwayFromZero).ToString();
我收到错误“从数字转换时,值必须是小于无穷大的数字”
答案 0 :(得分:2)
您可以使用支持DataRow.Field
的nullables方法:
decimal? num = monthlytable.Rows[u].Field<decimal?>(3);
Console.Write(num.HasValue
? Math.Round(num.Value, MidpointRounding.AwayFromZero)
: "no value");
答案 1 :(得分:0)
你可以尝试:
decimal num = 0;
if (monthlytable.Rows[u][3] != DBNull.Value)
num = Math.Round((decimal)monthlytable.Rows[u][3], 2, MidpointRounding.AwayFromZero)
string Maxmonthlytable = num.ToString();
答案 2 :(得分:-1)
您必须使用演员(decimal)
或(int)
,而不是使用演员(System.Decimal)
或使用演员(System.Int32)
,这将使此问题消失。< / p>