如果十进制值为null或0,我想返回“NA”字符串。我尝试了以下命令,但它不起作用:
var value = (tmpValue == null) ? (decimal?)tmpValue : "NA";
我已将tmpValue
初始化为:
decimal? tmpValue = 0;
基本上,如果tmpValue
为0或null,我想返回“NA”。注意:我不想将tmpValue
转换为字符串,作为基于小数值的公式。这样做的最佳方式是什么?
答案 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"
。