更多关于隐含类型

时间:2010-10-05 18:38:10

标签: c#

作为问题的后续问题what is the purpose of double implying ...

另外,我在一段时间内读过一篇文章(不,我不记得链接),decimal dollars = 0.00M;是不合适的。它表示适当的方式是decimal dollars = 0;。它还声明这适用于所有数字类型。这是不正确的,为什么?如果是这样,0有什么特别之处?

1 个答案:

答案 0 :(得分:11)

好吧,对于任何整数,可以使用从intdecimal的隐式转换,这就是它编译的原因。 (Zero有一些其他有趣的属性......你可以隐式地从任何常量零表达式转换为任何枚举类型。不应该使用类型double的常量表达式,{{1 }和float,但它恰好在MS编译器中这样做。)

但是,可能想要使用decimal,如果这是您要指定的精度。与0.00mdouble不同,float未标准化 - 因此decimal0m0.0m在内部具有不同的表示形式 - 您可以看到当你打电话给0.00m时。 (整数ToString将隐式转换为与0相同的表示形式。)

所以真正的问题是,你想在你的特定情况下代表什么?