在 C/C#/等中。你可以告诉编译器一个文字数字不是它看起来的样子(即,float
而不是double
,unsigned long
而不是int
):
var d = 1.0; // double
var f = 1.0f; // float
var u = 1UL; // unsigned long
等等
有人可以指出这些清单吗?我正在专门寻找short
or的后缀Int16
。
在 C/C#/等中。你可以告诉编译器一个文字数字不是它看起来的样子(即,float
而不是double
,unsigned long
而不是int
):
var d = 1.0; // double
var f = 1.0f; // float
var u = 1UL; // unsigned long
等等
有人可以指出这些清单吗?我正在专门寻找short
or的后缀Int16
。
var d = 1.0d; // double
var d0 = 1.0; // double
var d1 = 1e+3; // double
var d2 = 1e-3; // double
var f = 1.0f; // float
var m = 1.0m; // decimal
var i = 1; // int
var ui = 1U; // uint
var ul = 1UL; // ulong
var l = 1L; // long
我认为这就是全部...... short/ushort/byte/sbyte 没有文字说明符
从整数文字:
整数文字的类型确定如下:
- 如果字面量没有后缀,则它具有可以表示其值的第一个类型:
int
,uint
,long
,ulong
。U
如果文字以or为后缀u
,则它具有可以表示其值的以下类型中的第一个:uint
,ulong
.L
如果文字以or为后缀l
,则它具有可以表示其值的以下类型中的第一个:long
,ulong
.UL
如果文字以,Ul
,uL
,ul
,LU
,Lu
,lU
, or为后缀lu
,则它的类型为ulong
。
从真正的文字:
如果未指定实数类型后缀,则实数字面量的类型为 double。否则,实数类型后缀决定实数字面量的类型,如下:
F
以or为后缀的真实文字f
是 类型float
。例如,文字1f
、1.5f
、1e10f
和123.456F
都是 typefloat
。D
以or为后缀的真实文字d
是 类型double
。例如,文字1d
、1.5d
、1e10d
和123.456D
都是 typedouble
。M
以or为后缀的真实文字m
是 类型decimal
。例如,文字1m
、1.5m
、1e10m
和123.456M
都是 typedecimal
。该文字通过取精确值转换为十进制值,并在必要时使用银行四舍五入四舍五入到最接近的可表示值(第 4.1.7 节)。除非值被四舍五入或值为零(在后一种情况下,符号和比例将为 0),否则文字中明显的任何比例都会被保留。因此,文字2.900m
将被解析为带有符号0
、系数2900
和比例的小数3
。
如果你的变量还不是很短,你必须明确地转换它:
Object s = (Int16) 1;
没有一个简称。只需使用short s = 1;
.
var myValue = unchecked((short)0x7F00);
文字是 int,因此必须强制转换为目标类型。如果发生值溢出,则需要未经检查。