M代表C#十进制文字符号的含义是什么?

时间:2009-06-10 18:50:21

标签: c# decimal literals

为了使用十进制数据类型,我必须使用变量初始化来执行此操作:

decimal aValue = 50.0M;

M部分代表什么?

6 个答案:

答案 0 :(得分:321)

这意味着它是十进制文字,正如其他人所说的那样。然而,起源可能不是这个答案中其他地方所建议的。从C# Annotated Standard(ECMA版本,而不是MS版本):

  

自D / d以来decimal后缀为M / m   已由double采取。   虽然有人建议M   彼得戈尔德回忆说,代表金钱   M被简单地选为下一个   decimal中的最佳字母。

类似的注释提到C#的早期版本分别包含byteshort文字的“Y”和“S”。他们因不经常使用而被丢弃。

答案 1 :(得分:10)

M表示十进制。如果您不添加它,则该数字将被视为双精度数。 D是双倍的。

答案 2 :(得分:3)

根据C#规范:

var f = 0f; // single
var d = 0d; // double
var m = 0m; // decimal (money)
var u = 0u; // unsigned int
var l = 0l; // long
var ul = 0ul; // unsigned long

请注意,您可以使用大写字母或小写字母。

答案 3 :(得分:1)

以M或m为后缀的实数是十进制类型。例如,文字1m,1.5m,1e10m和123.456M都是十进制类型。通过获取精确值将此文字转换为十进制值,并在必要时使用银行家的舍入舍入到最接近的可表示值。除非值被舍入或值为零(在后一种情况下,符号和比例将为0),否则将保留文字中明显的任何比例。因此,将解析文字2.900m以形成带符号0,系数2900和比例3的小数。

参考:https://msdn.microsoft.com/en-us/library/aa691085.aspx

答案 4 :(得分:0)

好吧,我想M代表尾数。十进制可以用来省钱,但这并不意味着十进制仅用于赚钱。

答案 5 :(得分:-9)

可能代表Money。