十进制types的声明后缀
如果我想在代码中使用十进制文字,我已经看到存在m后缀(其中m代表金钱)。 这是适用于任何小数或存在一个更普遍的assigment(d代表双,这是为了舒适不正确的事情,虽然支持直接转换)。
object decimalValue=2m;
请注意,我以对象分配为例,因为在…的情况下…
decimal decimalValue=2;
…它隐含的清楚,2应该被编译器解释为十进制。
编辑: 米似乎是好的, msdn使用它作为十进制types的例子。
在C#语言规范第2.4.4章中logging:
float f = 1.2f; double d = 1.2d; uint u = 2u; long l = 2L; ulong ul = 2UL; decimal m = 2m;
没有int,byte,sbyte,short,ushort。
没有后缀,数字真正的文字将是一个双。 m后缀指定一个数字实数字面值应该是一个十进制数。
这实际上很重要,因为对浮点值(如Double)的算术是不精确的。 例如:
object decimalValue=(5.32 + 2.23);
在这里,decimalValue实际上将包含一个Double,其意外值为7.5500000000000007! 如果我想7.55,我可以这样做:
object decimalValue=(5.32m + 2.23m);
要回答您是否有更通用的后缀的问题,m是C#中Decimal的唯一后缀。 它可能象你刚才提到的那样代表金钱,但是他们确实使用了d以外的东西,因为Double被Double使用了。
更多阅读: 十进制(C#参考)
在C#中声明十进制的简短答案
decimal firstMoney = 141.28m;
O / P: 141.28
decimal secondMoney = 100.00m;
O / P: 100
更多请参考MSDN 。
希望有助于某人。