作为问题what is the purpose of double implying的后续...
另外,我前一段时间读过一篇文章(不,我不记得链接),不适合执行decimal dollars = 0.00M;
。它指出,适当的方法是decimal dollars = 0;
。它还指出,这适用于所有数字类型。这是不正确的,为什么?如果是这样,那么0有什么特别之处?
最佳答案
好吧,对于任何整数,都可以使用从int
到decimal
的隐式转换,这就是为什么它可以编译的原因。 (零还具有其他一些有趣的属性...您可以将任何常量零表达式隐式转换为任何枚举类型。它不适用于类型为double
,float
和decimal
的常量表达式,但是它碰巧会在MS编译器中执行此操作。)
但是,如果这是您要指定的精度,则可能要使用0.00m
。与double
和float
不同,decimal
未被规范化-因此0m
,0.0m
和0.00m
在内部具有不同的表示形式-当您在它们上调用ToString
时可以看到。 (整数0
将隐式转换为与0m
相同的表示形式。)
因此,真正的问题是,在特定情况下您想代表什么?
关于c# - 有关隐式类型的更多信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3866670/