C# - 数字后缀

时间:2010-08-25 19:52:58

标签: c# numeric

  

可能重复:
  Declaration suffix for decimal type

嘿大家,

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

dto.RewardValue = 1.5;

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

“无法将源类型double转换为目标类型decimal”

有道理,可以通过将代码行更改为:

来轻松修复
dto.RewardValue = 1.5m;

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

有人知道我能在哪里找到所有那些“m”型操作符的列表吗? (如果你能让我知道那些适当的术语是什么,那将非常感激)

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

4 个答案:

答案 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 suffixeshttp://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