C / C#/etcで。リテラル番号が見た目とは異なることをコンパイラーに伝えることができます(つまり、float
の代わりにdouble
、のunsigned long
代わりにint
):
var d = 1.0; // double
var f = 1.0f; // float
var u = 1UL; // unsigned long
等
誰かが私にこれらのリストを教えてもらえますか?short
特にまたはの接尾辞を探していInt16
ます。
C / C#/etcで。リテラル番号が見た目とは異なることをコンパイラーに伝えることができます(つまり、float
の代わりにdouble
、のunsigned long
代わりにint
):
var d = 1.0; // double
var f = 1.0f; // float
var u = 1UL; // unsigned long
等
誰かが私にこれらのリストを教えてもらえますか?short
特にまたはの接尾辞を探してい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
その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
はすべてタイプです。このリテラルは、正確な値を取得することによって10進値に変換され、必要に応じて、銀行の丸めを使用して最も近い表現可能な値に丸められます(セクション4.1.7)。値が丸められるか、値がゼロでない限り、リテラルで明らかなスケールは保持されます(後者の場合、符号とスケールは0になります)。したがって、リテラルは、符号、係数、およびスケールを持つ小数を形成するために解析されます。1.5m
1e10m
123.456M
decimal
2.900m
0
2900
3
変数がまだ短い場合は、明示的にキャストする必要があります。
Object s = (Int16) 1;
略して1つはありません。を使用するだけshort s = 1;
です。
var myValue = unchecked((short)0x7F00);
リテラルはintであるため、ターゲット型にキャストする必要があります。値のオーバーフローが発生した場合は、チェックを外す必要があります。