嘿大家,
在下面的代码片段中; RewardValue是小数:
dto.RewardValue = 1.5;
现在,这给了我以下错误:
“无法将源类型double转换为目标类型decimal”
有道理,可以通过将代码行更改为:
来轻松修复dto.RewardValue = 1.5m;
现在,“m”将其转换为小数,一切都很好。
有人知道我能在哪里找到所有那些“m”型操作符的列表吗? (如果你能让我知道那些适当的术语是什么,那将非常感激)
编辑:感谢HCL和MartyIX让我知道这些被称为“后缀”
答案 0 :(得分:20)
我相信你要找的术语是“后缀”。
示例:
1; // int
1.0; // double
1.0f; // float
1.0m; // decimal
1u; // uint
1L; // long
1UL; // ulong
答案 1 :(得分:14)
这是一个非常小的清单,真的。
F: float
D: double
U: uint
L: long
UL: ulong
M: decimal
当然,一个简单的积分值本身被解释为int
,除非它太大而不能成为int
,在这种情况下它是long
,除非它太大了long
在这种情况下,它是ulong
。如果它对于ulong
而言太大,则不能将其用作文字(据我所知)。
其中带有小数点的值会自动解释(正如您自己发现的那样)为double
。
答案 2 :(得分:2)
http://dotnetperls.com/suffix-examples - 他们称之为numeric suffixes
(http://msdn.microsoft.com/en-us/library/b1e65aza(VS.71).aspx - 此处也有后缀)
后缀类型:unsigned int
字符:U
示例:uint x = 100U;
后缀类型:长
字符:L
示例:long x = 100L;
后缀类型:unsigned long
字符:UL
示例:ulong x = 100UL;
后缀类型:float
字符:F
示例:float x = 100F;
后缀类型:double
字符:D
示例:double x = 100D;
后缀类型:十进制
字符:M
示例:十进制x = 100M;
答案 3 :(得分:2)
我相信它被称为“数字文字”: http://www.blackwasp.co.uk/CSharpNumericLiterals.aspx