2014-01-27 4 views
0

Я получаю доступ к конечной точке и получаю JSON обратно. Я прокручиваю объект, и я помещаю его в двойное поле. Иногда поданная будет пустой. Как обращаться с нулевым случаем. В настоящее время мой код выглядит так:Как проверить значение null для переменной Double

double scanning_risk = double.Parse(JSONrecord[i].scanning_risk.ToString()); 

Just FYI. Я был в состоянии обработать нулевые ошибки с INT переменных с помощью функции GetValueOrDefault(), как:

int Firm_Id = JSONrecord[i].Firm_Id.GetValueOrDefault(); 

Вот как я обработка строк:

string Deleted_At = JSONrecord[i].Deleted_At == null 
        ? "" 
        : JSONrecord[i].Deleted_At.ToString();** 

Есть ли подобная GetValueOrDefault функции() для двойного или аналогичным образом обрабатывать случай, когда двойная подача равна нулю?

Спасибо!

+0

'GetValueOrDefault' - метод' Nullable ', который отлично подходит для парных разрядов. Какая ошибка (ы) вы получаете? –

ответ

-1
double scanning_risk = 0; 
if(!string.IsNullOrWhitespace(JSONrecord[i].scanning_risk.ToString())) { 
    scanning_risk = double.Parse(JSONrecord[i].scanning_risk.ToString()); 
} 
+0

Как вы можете сказать «0» и «нуль» друг от друга? –

+0

Если значение «null», это просто вызовет NRE. – Servy

2

Он должен работать так же, как для int с:

double scanning_risk = JSONrecord[i].scanning_risk.DefaultOrEmpty(); 

При условии, конечно, что scanning_risk является Nullable<double> поле.

+0

@DavidHeffernan, откуда вы знаете? OP вызывает 'ToString()' в вопросе. –

+0

Я думаю, что ты прав. Я вернусь. +1 –

0

Этот код вернет вам значение или значение по умолчанию (0) для double:

double scanning_risk = 0; 
double.TryParse(JSONrecord[i].scanning_risk.ToString(), out scaning_risk); 

Если вы можете иметь null в JSONrecord[i].scanning_risk использования:

double scanning_risk = 0; 
double.TryPerse(JSONrecord[i].scanning_risk == null ? "" : JSONrecord[i].scanning_risk.ToString(), out scanning_risk); 

Кроме того, этот метод возвращает правильно по умолчанию (0) для double, если строка содержит не числовое значение.

0

Спасибо, eveyone.

Это то, что я в конечном итоге с помощью:

double spread_charge = row.spread_charge == null 
         ? 0 
         : double.Parse(row.spread_charge.ToString()); 

где мой класс имеет двойной JSON? spread_загрузка

+0

Когда вы запускаете его в отладчике, какой тип 'row.spread_charge'? –

Смежные вопросы