cos*_*son 282 c# decimal literals
为了使用十进制数据类型,我必须使用变量初始化来执行此操作:
decimal aValue = 50.0M;
M部分代表什么?
Jon*_*eet 358
这意味着它是一个十进制字面,正如其他人所说的那样.然而,起源可能不是这个答案中其他地方所建议的.来自C#Annotated Standard(ECMA版本,而不是MS版本):
该
decimal后缀是M /米因为d/d已经采取double.尽管有人建议M代表金钱,但彼得戈尔德回忆说,M被选为下一个最好的字母decimal.
类似的注释提到C#的早期版本分别包括"Y"和"S" byte和short文字.他们因不经常使用而被丢弃.
MDS*_*ens 14
M表示十进制.如果您不添加它,则该数字将被视为双精度数.D是双倍的.
Sha*_*uti 13
从C#规范:
var f = 0f; // float
var d = 0d; // double
var m = 0m; // decimal (money)
var u = 0u; // unsigned int
var l = 0l; // long
var ul = 0ul; // unsigned long
请注意,您可以使用大写或小写表示法。
以 M 或 m 为后缀的实数是decimal (money)类型。例如,文字 1m、1.5m、1e10m 和 123.456M 都是十进制类型。该文字通过取精确值转换为十进制值,并在必要时使用银行家舍入法四舍五入到最接近的可表示值。除非值被四舍五入或值为零(在后一种情况下,符号和比例将为 0),否则会保留文字中明显的任何比例。因此,文字 2.900m 将被解析为带符号 0、系数 2900 和比例 3 的小数。