作为问题的后续问题what is the purpose of double implying ...
另外,我在一段时间内读过一篇文章(不,我不记得链接),decimal dollars = 0.00M;
是不合适的。它表示适当的方式是decimal dollars = 0;
。它还声明这适用于所有数字类型。这是不正确的,为什么?如果是这样,0有什么特别之处?
答案 0 :(得分:11)
好吧,对于任何整数,可以使用从int
到decimal
的隐式转换,这就是它编译的原因。 (Zero有一些其他有趣的属性......你可以隐式地从任何常量零表达式转换为任何枚举类型。不应该使用类型double
的常量表达式,{{1 }和float
,但它恰好在MS编译器中这样做。)
但是,可能想要使用decimal
,如果这是您要指定的精度。与0.00m
和double
不同,float
未标准化 - 因此decimal
,0m
和0.0m
在内部具有不同的表示形式 - 您可以看到当你打电话给0.00m
时。 (整数ToString
将隐式转换为与0
相同的表示形式。)
所以真正的问题是,你想在你的特定情况下代表什么?