3Da*_*ave 163 c# literals language-specifications
在C/C#/等中,你可以告诉编译器一个字面数字不是它看起来的样子(即float代替double,unsigned long而不是int:
var d = 1.0; // double
var f = 1.0f; // float
var u = 1UL; // unsigned long
Run Code Online (Sandbox Code Playgroud)
等等
有人能指出我这些的清单吗?我特意为short或寻找后缀Int16.
Tho*_*que 278
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
Run Code Online (Sandbox Code Playgroud)
我认为这就是...短/ ushort/byte/sbyte没有文字说明符
Bol*_*ock 40
来自§2.4.4.2整数文字:
整数文字的类型确定如下:
- 如果文字没有后缀,它具有第一这些类型的,其中它的值可以表示的:
int,uint,long,ulong.- 如果文字后缀为
U或u,则它具有这些类型中的第一个,其值可以表示为:uint,ulong.- 如果文字后缀为
L或l,则它具有这些类型中的第一个,其值可以表示为:long,ulong.- 如果文字是由后缀
UL,Ul,uL,ul,LU,Lu,lU,或lu,它的类型的ulong.
如果未指定实际类型后缀,则实数的类型为double.否则,实际类型后缀确定实际文字的类型,如下所示:
- 真实的文字后缀
F或f类型float.例如,文字1f,1.5f,1e10f,和123.456F都是类型的float.- 真实的文字后缀
D或d类型double.例如,文字1d,1.5d,1e10d,和123.456D都是类型的double.- 真实的文字后缀
M或m类型decimal.例如,文字1m,1.5m,1e10m,和123.456M都是类型的decimal.通过获取精确值将此文字转换为十进制值,并在必要时使用银行家的舍入舍入到最接近的可表示值(第4.1.7节).除非值被舍入或值为零(在后一种情况下,符号和比例将为0),否则将保留文字中明显的任何比例.因此,2.900m将解析文字以形成带符号0,系数2900和比例的小数3.
如果你的变量不是很短,你必须明确地转换它:
Object s = (Int16) 1;
Run Code Online (Sandbox Code Playgroud)
没有一个可以简称。只需使用short s = 1;.
| 归档时间: |
|
| 查看次数: |
67699 次 |
| 最近记录: |