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を使用して、変換が成功したかどうかを確認します。
double mrp;
if (Double.TryParse(gvRow.Cells[9].Text.ToString(), out mrp))
{
// Success
}
else
{
// Cannot convert to double
}
これを試してください:double mrp = gvRow.Cells[9].Text.ToString() != "" ? Convert.ToDouble(gvRow.Cells[9].Text.ToString()): 0.0;
を使用するDouble.TryParse
と、これは例外をスローせず、解析が失敗した場合は解析0
された値として取得されます。
double number;
if (double.TryParse(gvRow.Cells[9].Text, out number))
{
//valid
}
{
//invalid
}
//if invalid then number will hold `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 を使用する必要があります。
ただし、別の方法として、データ型のチェックによってセルを検証するか、null であってはなりません。
double.Tryparse. を使用できます。
double num;
if(Double.Tryparse(gvRow.Cells[9].Text.ToString(),num)
{
// get the converted value
}
else
{
//invalid
}