double mrp = Convert.ToDouble(gvRow.Cells[9].Text.ToString());
在上面的代码中,当mrp = "6458.0"
它工作正常但有时当mrp为空时它会抛出一个异常。请帮助我解决这个问题......
double mrp = Convert.ToDouble(gvRow.Cells[9].Text.ToString());
在上面的代码中,当mrp = "6458.0"
它工作正常但有时当mrp为空时它会抛出一个异常。请帮助我解决这个问题......
使用Double.TryParse
,这不会抛出异常,如果解析失败,那么您将获得0
解析后的值。
double number;
if (double.TryParse(gvRow.Cells[9].Text, out number))
{
//valid
}
{
//invalid
}
//if invalid then number will hold `0`
使用Double.TryParse检查转换是否成功。
double mrp;
if (Double.TryParse(gvRow.Cells[9].Text.ToString(), out mrp))
{
// Success
}
else
{
// Cannot convert to double
}
此外,您可能想使用Double.IsNan
你应该试试这个:double mrp = gvRow.Cells[9].Text.ToString() != "" ? Convert.ToDouble(gvRow.Cells[9].Text.ToString()): 0.0;
if (Double.TryParse(gvRow.Cells[9].Text.ToString(), out mrp))
Console.WriteLine("Ok");
else
Console.WriteLine("not a number");
试试 double.tryParse
Convert.ToDouble will throw an exception on non-numbers
Double.Parse will throw an exception on non-numbers or null
Double.TryParse will return false or 0 on any of the above without generating an exception.
您可以使用 double.Tryparse..
double num;
if(Double.Tryparse(gvRow.Cells[9].Text.ToString(),num)
{
// get the converted value
}
else
{
//invalid
}
正如其他人所说,您应该使用 Double.TryParse。
但作为一种替代方式,您可以通过数据类型检查来验证您的单元格,或者它不应该为空等。