检查小数?为null

时间:2016-06-14 23:04:12

标签: c#

如果十进制值为null或0,我想返回“NA”字符串。我尝试了以下命令,但它不起作用:

var value = (tmpValue == null) ? (decimal?)tmpValue : "NA";

我已将tmpValue初始化为:

decimal? tmpValue = 0;

基本上,如果tmpValue为0或null,我想返回“NA”。注意:我不想将tmpValue转换为字符串,作为基于小数值的公式。这样做的最佳方式是什么?

3 个答案:

答案 0 :(得分:2)

var value = (tmpValue ?? 0) != 0 ? tmpValue : (dynamic)"NA";

答案 1 :(得分:1)

public string IsDecimalNull(decimal? value){
    return value == null || value == 0 ? "NA" : value.ToString();
}

这应该完全符合你的要求。因为你只关心NA,你会像下面一样使用它。我让它返回value.ToString()因为它比返回一个空字符串更好,尽管你可以改变它来做那个。

if (IsDecimalNull(tmpValue) == "NA"){
    //do what you want with the null value
}

答案 2 :(得分:0)

首先消除空值,然后转换为字符串。

var value = (tmpValue ?? 0M) != 0M ? tmpValue.ToString() : "NA";

你不能两种方式,你要么使用小数,要么使用字符串。处理此问题的更好方法可能是将0M值更改为null,因此当您准备格式化数字时,可以将所有空值视为"NA"