【发布时间】:2010-10-05 18:38:10
【问题描述】:
作为问题what is the purpose of double implying...
另外,我在不久前的一篇文章中读到(不,我不记得链接了)说decimal dollars = 0.00M; 是不合适的。它表示适当的方式是decimal dollars = 0;。它还指出,这适用于所有数字类型。这是不正确的,为什么?如果有,0有什么特别之处?
【问题讨论】:
标签: c#
作为问题what is the purpose of double implying...
另外,我在不久前的一篇文章中读到(不,我不记得链接了)说decimal dollars = 0.00M; 是不合适的。它表示适当的方式是decimal dollars = 0;。它还指出,这适用于所有数字类型。这是不正确的,为什么?如果有,0有什么特别之处?
【问题讨论】:
标签: c#
好吧,对于 any 整数,可以使用从 int 到 decimal 的隐式转换,这就是它编译的原因。 (零还有一些其他有趣的属性...您可以从任何常量零表达式隐式转换为任何枚举类型。它不应该使用double、float 和@ 类型的常量表达式987654325@,但它恰好在 MS 编译器中这样做。)
但是,您可能想要使用0.00m,如果这是您要指定的精度。与double 和float 不同,decimal 没有被规范化——所以0m、0.0m 和0.00m 在内部有不同的表示——当你对它们调用ToString 时,你可以看到这一点。 (整数0 将被隐式转换为与0m 相同的表示形式。)
所以真正的问题是,您想在您的特定案例中代表什么?
【讨论】: