如何测试Double变量的null

时间:2014-01-27 17:45:00

标签: c# json

我正在访问端点并获取JSON。我遍历对象,然后将值放在双字段中。有时该提交的文件将为空。我该如何处理null情况。目前我的代码如下:

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

仅供参考。我能够使用GetValueOrDefault()函数处理INT变量的空错误,如:

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

以下是我处理字符串的方式:

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

当double字段为空时,是否有类似的GetValueOrDefault()函数用于处理双重或类似的方法?

谢谢!

4 个答案:

答案 0 :(得分:2)

它应该与int s:

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

当然,假设scanning_riskNullable<double>字段。

答案 1 :(得分:0)

此代码将返回double的值或默认值(0):

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);

如果string包含非数字值,此方法还会为double返回正确的默认值(0)。

答案 2 :(得分:0)

谢谢大家。

这是我最终使用的:

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

我的json类有两倍?差价收费

答案 3 :(得分:-1)

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