C# 检查小数点?为空
如果十进制值为null或0,我想返回“NA”字符串。我尝试了以下命令,但无效:C# 检查小数点?为空,c#,C#,如果十进制值为null或0,我想返回“NA”字符串。我尝试了以下命令,但无效: var value = (tmpValue == null) ? (decimal?)tmpValue : "NA"; 我已经将tmpValue初始化为: decimal? tmpValue = 0; 基本上,如果tmpValue为0或null,我想返回“NA”。注意:我不想将tmpValue转换为字符串,作为基于十进制值的公式。最好的方法是什么?首先消除空值,然后转换为字符串 var value = (tmpV
var value = (tmpValue == null) ? (decimal?)tmpValue : "NA";
我已经将tmpValue
初始化为:
decimal? tmpValue = 0;
基本上,如果
tmpValue
为0或null,我想返回“NA”。注意:我不想将tmpValue
转换为字符串,作为基于十进制值的公式。最好的方法是什么?首先消除空值,然后转换为字符串
var value = (tmpValue ?? 0M) != 0M ? tmpValue.ToString() : "NA";
你不能两全其美,要么用小数,要么用字符串。处理此问题的更好方法可能是将
0M
值更改为null
,这样当您准备好格式化数字时,可以将所有空值视为“NA”
首先消除空值,然后转换为字符串
var value = (tmpValue ?? 0M) != 0M ? tmpValue.ToString() : "NA";
你不能两全其美,要么用小数,要么用字符串。处理此问题的更好方法可能是将0M
值更改为null
,这样当您准备好格式化数字时,可以将所有空值视为“NA”
这正是你想要的。因为你只关心NA,所以你会像下面那样使用它。我让它返回value.ToString()
,因为它比返回空字符串要好,尽管您可以更改它来实现这一点
if (IsDecimalNull(tmpValue) == "NA"){
//do what you want with the null value
}
这正是你想要的。因为你只关心NA,所以你会像下面那样使用它。我让它返回value.ToString()
,因为它比返回空字符串要好,尽管您可以更改它来实现这一点
if (IsDecimalNull(tmpValue) == "NA"){
//do what you want with the null value
}
如果
tmpValue
是非空的非零小数,您希望为value
分配什么?现在,您正试图将两种不同的类型分配给值
;decimal?
或string
取决于tmpValue==null
的计算结果。如果有值,则需要十进制值;如果值为0或null,则需要“NA”。如果tmpValue
是非null十进制值,则要为值分配什么?现在,您正试图将两种不同的类型分配给值
;decimal?
或string
取决于tmpValue==null
的计算结果。如果有值,则需要十进制值;如果是0或null,则需要“NA”。字符串插值不是c#6.0特性吗?问题被标记为c#-4.0。字符串插值不是c#6.0特性吗?问题被标记为c#-4.0。这不会将tmpValue更改为字符串吗?tmpValue是否可能是动态的&仅为null和0的字符串?不,它不会改变任何东西。除非它是一个对象,并将其转换为字符串或十进制。但这很糟糕,它只是检查null或零,然后输出NA或十进制的字符串表示形式。除了检查NA的返回值外,您不需要使用函数的返回值。它只是通过输出NA(如果是)或字符串版本(如果不是)来告诉您该值是否为null。如果要对十进制进行数学运算,则不需要(或希望)使用字符串值。不过,您应该知道,在javascript中,字符串“8.05”
与十进制值8.05
被视为相同。但这就是javascript,它是一种弱类型语言——c#是一种强类型语言。这不会将tmpValue更改为字符串吗?tmpValue是否可能是动态的&仅为null和0的字符串?不,它不会改变任何东西。除非它是一个对象,并将其转换为字符串或十进制。但这很糟糕,它只是检查null或零,然后输出NA或十进制的字符串表示形式。除了检查NA的返回值外,您不需要使用函数的返回值。它只是通过输出NA(如果是)或字符串版本(如果不是)来告诉您该值是否为null。如果要对十进制进行数学运算,则不需要(或希望)使用字符串值。不过,您应该知道,在javascript中,字符串“8.05”
与十进制值8.05
被视为相同。但这就是javascript,它是一种弱类型的语言——c#是一种强类型的语言!如果您尝试将该值用作十进制,在将其转换为动态类型并具有值“NA”后,您将得到一个运行时异常。这段代码虽然短而甜美,但除非您在运行后通过执行运行时类型检查来正确使用它,否则注定会导致错误。我很高兴你找到了解决办法!又短又甜!如果您尝试将该值用作十进制,在将其转换为动态类型并具有值“NA”后,您将得到一个运行时异常。这段代码虽然短而甜美,但除非您在运行后通过执行运行时类型检查来正确使用它,否则注定会导致错误。我很高兴你找到了解决办法!