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

问题描述 投票:244回答:6

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

decimal aValue = 50.0M;

M部分代表什么?

c# decimal literals
6个回答
334
投票

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

decimal后缀为M / m,因为q / x已经由double采用。尽管有人建议M代表金钱,但彼得戈尔德回忆说M被选为decimal中的下一个最好的字母。

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


10
投票

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


6
投票

来自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

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


1
投票

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

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


0
投票

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


-10
投票

可能代表金钱。

© www.soinside.com 2019 - 2024. All rights reserved.