double mrp = Convert.ToDouble(gvRow.Cells[9].Text.ToString());
在上面的代码中,当mrp = "6458.0"
它工作正常时,但是当mrp为空时,它会引发异常。请帮我解决这个问题....
答案 0 :(得分:1)
使用Double.TryParse
,这不会抛出异常,如果解析失败,那么您将获得0
作为解析值。
double number;
if (double.TryParse(gvRow.Cells[9].Text, out number))
{
//valid
}
{
//invalid
}
//if invalid then number will hold `0`
答案 1 :(得分:1)
使用 Double.TryParse 检查转化是否成功。
double mrp;
if (Double.TryParse(gvRow.Cells[9].Text.ToString(), out mrp))
{
// Success
}
else
{
// Cannot convert to double
}
此外,您可能希望使用Double.IsNan
答案 2 :(得分:0)
if (Double.TryParse(gvRow.Cells[9].Text.ToString(), out mrp))
Console.WriteLine("Ok");
else
Console.WriteLine("not a number");
答案 3 :(得分:0)
你应该试试这个:double mrp = gvRow.Cells[9].Text.ToString() != "" ? Convert.ToDouble(gvRow.Cells[9].Text.ToString()): 0.0;
答案 4 :(得分:0)
你可以使用double.Tryparse ..
double num;
if(Double.Tryparse(gvRow.Cells[9].Text.ToString(),num)
{
// get the converted value
}
else
{
//invalid
}
答案 5 :(得分:0)
你应该像其他人一样使用Double.TryParse。
但作为替代方法,您可以通过数据类型检查来验证您的单元格,或者它不应该为null等。
答案 6 :(得分:0)
尝试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.