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

上記のコードmrp = "6458.0"では正常に動作しますが、mrp が空の場合に例外がスローされることがあります。この問題を解決するのを手伝ってください....

4

7 に答える 7

1

Double.TryParseを使用して、変換が成功したかどうかを確認します。

double mrp;
if (Double.TryParse(gvRow.Cells[9].Text.ToString(), out mrp))
{
   // Success
}
else
{
  // Cannot convert to double
}

また、Double.IsNanを使用することもできます

于 2013-04-02T10:33:48.880 に答える
1

これを試してください:double mrp = gvRow.Cells[9].Text.ToString() != "" ? Convert.ToDouble(gvRow.Cells[9].Text.ToString()): 0.0;

于 2013-04-02T10:34:23.873 に答える
1

を使用するDouble.TryParseと、これは例外をスローせず、解析が失敗した場合は解析0された値として取得されます。

double number;
if (double.TryParse(gvRow.Cells[9].Text, out number))
{
    //valid
}
{
    //invalid
}

//if invalid then number will hold `0`
于 2013-04-02T10:33:30.823 に答える
0
if (Double.TryParse(gvRow.Cells[9].Text.ToString(), out mrp))
   Console.WriteLine("Ok");
else
   Console.WriteLine("not a number");
于 2013-04-02T10:33:53.693 に答える
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.
于 2013-04-02T10:50:11.750 に答える
0

他の人が話したように、Double.TryParse を使用する必要があります。

ただし、別の方法として、データ型のチェックによってセルを検証するか、null であってはなりません。

于 2013-04-02T10:40:48.550 に答える
0

double.Tryparse. を使用できます。

 double num; 

if(Double.Tryparse(gvRow.Cells[9].Text.ToString(),num) 
{
  // get the converted value
}
else
{
  //invalid
}
于 2013-04-02T10:37:33.227 に答える