十进制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 。

希望有助于某人。