如何将空字符串转换为double

时间:2013-04-02 10:30:51

标签: asp.net

double mrp = Convert.ToDouble(gvRow.Cells[9].Text.ToString());

在上面的代码中,当mrp = "6458.0"它工作正常时,但是当mrp为空时,它会引发异常。请帮我解决这个问题....

7 个答案:

答案 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

Reference

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.