【问题标题】:C# - Numeric Suffixes [duplicate]C# - 数字后缀
【发布时间】:2011-04-03 22:30:52
【问题描述】:

可能重复:
Declaration suffix for decimal type

大家好,

在下面的sn-p代码中; RewardValue 是小数:

dto.RewardValue = 1.5;

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

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

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

dto.RewardValue = 1.5m;

现在,“m”将其转换为小数,一切正常。

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

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

【问题讨论】:

  • 这个问题的答案可以在“dupe”问题中找到,但那里提出的问题更有针对性。它仅明确要求十进制后缀(decimal m = 2m;),并且要求提供所有“数字后缀”的列表。 Fwiw、2¢ 等。

标签: c# numeric


【解决方案1】:

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;

后缀类型:float

字符:F

例子:float x = 100F;

后缀类型:双精度

字符:D

示例:双 x = 100D;

后缀类型:十进制

字符:M

示例:十进制 x = 100M;

【讨论】:

    【解决方案2】:

    我相信您要查找的术语是“后缀”。

    例子:

    1;    // int
    1.0;  // double
    1.0f; // float
    1.0m; // decimal
    1u;   // uint
    1L;   // long
    1UL;  // ulong
    

    【讨论】:

      【解决方案3】:

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

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

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

      一个带有小数点的值会被自动解释为double

      【讨论】:

        【解决方案4】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2013-06-12
          • 1970-01-01
          • 1970-01-01
          • 2015-06-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多