当从数字转换时,该值必须是小于无穷大的数字

时间:2012-10-23 07:25:29

标签: c#

我只想舍入来自datatable的值,Data来自SQL到datable.Also datatable有空值我觉得这个问题但请你检查我

string Maxmonthlytable = Math.Round((decimal)monthlytable.Rows[u][3], 2, MidpointRounding.AwayFromZero).ToString();

我收到错误“从数字转换时,值必须是小于无穷大的数字”

3 个答案:

答案 0 :(得分:2)

您可以使用支持DataRow.Fieldnullables方法:

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>