使用0M而不是0作为十进制值?

时间:2018-05-03 09:29:35

标签: c#

是否有必要为M变量的分配和比较添加decimal零值?

decimal val;
...
if (val == 0M)
{
}

if (val == 0)
{
}

我想常量将在编译时转换,结果将是相同的。

1 个答案:

答案 0 :(得分:5)

没有必要。整数类型为casted implicitlydecimal。如果文字表示浮点数,则必须添加M后缀。没有类型后缀的浮点文字是double,那些需要显式转换为decimal

decimal d = 1;     // works
decimal d2 = 1.0   // does not work
decimal d3 = 1.0M  // works

这里的文字0显然是整数文字的一个特例。