2013-04-02 3 views
0
double mrp = Convert.ToDouble(gvRow.Cells[9].Text.ToString()); 

В приведенном выше коде, когда mrp = "6458.0" он работает нормально, но когда Somtimes MRP пуст Теперь он бросает exception.kindly помочь мне решить эту проблему ....как преобразовать пустую строку, чтобы удвоить

+4

Что должен пустую строку нужно преобразовать в? Где здравый смысл в подходе к этому вопросу? Вы пытались поставить 'if' там, чтобы проверить, является ли это пустой строкой? _А почему нет? _ – ppeterka

ответ

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

Использование Double.TryParse, чтобы проверить, если преобразование завершается успешно или нет.

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

Кроме того, Вы можете использовать Double.IsNan

+0

Я бы поставил «Радость», «Счастье» и «Богатство» тоже :) – ppeterka

0
if (Double.TryParse(gvRow.Cells[9].Text.ToString(), out mrp)) 
    Console.WriteLine("Ok"); 
else 
    Console.WriteLine("not a number"); 
0

вы должны попробовать это: double mrp = gvRow.Cells[9].Text.ToString() != "" ? Convert.ToDouble(gvRow.Cells[9].Text.ToString()): 0.0;

0

Вы можете использовать double.Tryparse ..

double num; 

if(Double.Tryparse(gvRow.Cells[9].Text.ToString(),num) 
{ 
    // get the converted value 
} 
else 
{ 
    //invalid 
} 
+0

Это не очень хороший ответ. Это ничего не меняет. Как он может преобразовать что-то вроде «HEY», чтобы удвоить? Это снова вызовет исключение. –

+0

@ AnılCanlı u r right Я не думал об этом. – coder

0

Вы должны использовать Double.TryParse, как говорили другие.

Но как альтернативный способ, вы можете проверить свои клетки путем проверки типа данных, или он не должен быть пустым и т.д.

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. 
Смежные вопросы