28

可能重复:
十进制类型的声明后缀

嘿大家,

在以下代码片段中;RewardValue 是小数:

dto.RewardValue = 1.5;

现在,这给了我以下错误:

“无法将源类型双精度转换为目标类型十进制”

有道理,并且可以通过将该行代码更改为以下内容来轻松修复:

dto.RewardValue = 1.5m;

现在,“m”将其转换为小数,一切都很好。

有人知道在哪里可以找到所有“m”类型运算符的列表吗?(如果你能让我知道这些的正确术语是什么,将不胜感激)

编辑: 感谢 HCL 和 MartyIX 让我知道这些被称为“后缀”

4

4 回答 4

29

我相信您正在寻找的术语是“后缀”。

例子:

1;    // int
1.0;  // double
1.0f; // float
1.0m; // decimal
1u;   // uint
1L;   // long
1UL;  // ulong
于 2010-08-25T19:58:08.280 回答
19

这是一个非常小的列表,真的。

F:  float
D:  double
U:  uint
L:  long
UL: ulong
M:  decimal

当然,一个普通的整数值本身被解释为 a int,除非它太大而不能成为 aint在这种情况下它是 a long,除非它太大而不是 along在这种情况下它是 a ulong。如果它对于 a 来说太大了ulong,你就不能将它用作文字(据我所知)。

带有小数点的值会自动解释为(如您自己发现的那样)为double.

于 2010-08-25T19:59:33.660 回答
3

http://dotnetperls.com/suffix-examples - 他们简单地称之为numeric suffixeshttp://msdn.microsoft.com/en-us/library/b1e65aza(VS.71).aspx - 这里也是后缀)

后缀类型:无符号整数

字符:U

示例:uint x = 100U;

后缀类型:长

性格:L

示例:长 x = 100L;

后缀类型:无符号长

性格:UL

示例:ulong x = 100UL;

后缀类型:浮点数

性格:F

示例:浮点 x = 100F;

后缀类型:双

性格:D

示例:双 x = 100D;

后缀类型:十进制

性格:M

示例:十进制 x = 100M;

于 2010-08-25T19:56:21.047 回答
2

我相信它被称为“数字文字”: http: //www.blackwasp.co.uk/CSharpNumericLiterals.aspx

于 2010-08-25T19:59:48.963 回答