C# - 数字后缀

29

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

大家好,

在下面的代码片段中,RewardValue 是一个十进制数:

dto.RewardValue = 1.5;

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

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

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

dto.RewardValue = 1.5m;

现在,"m"将其转换为十进制,一切顺利。

请问是否有地方可以找到所有那些类似"m"类型的操作符?(如果您能让我知道这些操作符的正确术语,我将不胜感激)

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


2
答案可以在“重复”问题中找到,但那里提出的问题更加具体。它明确要求十进制后缀(decimal m = 2m;),而这个问题则要求列出所有“数字后缀”。顺便说一下,2¢等也是数字后缀。 - ruffin
4个回答

33

我认为你要找的术语是“后缀”。

例如:

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

25

实际上这是一个相当小的列表。

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

当然,一个普通的整数值本身会被解释为一个 int,除非它太大而不能表示为一个 int,那么就是一个 long,除非它对于一个 long来说也太大了,这时它就是一个 ulong。如果它对于一个 ulong来说太大,你就不能将其作为文字使用(据我所知)。

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


3

https://www.dotnetperls.com/suffix - 它们简单地称之为数字后缀 (http://msdn.microsoft.com/en-us/library/b1e65aza(VS.71).aspx - 这里也有后缀)

后缀类型:无符号整数

字符:U

示例:uint x = 100U;

后缀类型:长整型

字符:L

示例:long x = 100L;

后缀类型:无符号长整型

字符:UL

示例:ulong x = 100UL;

后缀类型:单精度浮点型

字符:F

示例:float x = 100F;

后缀类型:双精度浮点型

字符:D

示例:double x = 100D;

后缀类型:十进制数

字符:M

示例:decimal x = 100M;


shortInt16有后缀吗? - Ahmed Suror
1
据我所知,没有。如果存在的话,在这里https://learn.microsoft.com/zh-cn/dotnet/csharp/language-reference/builtin-types/integral-numeric-types就会提到了。 - MartyIX

2

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接