c#short/long/int文字通り形式?
-
26-10-2019 - |
質問
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の文字通りの仕様はありません
他のヒント
から §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
.
そしてから §2.4.4.3実際のリテラル:
実際のタイプの接尾辞が指定されていない場合、実際のリテラルのタイプは2倍です。それ以外の場合、実際のタイプの接尾辞は、次のように、実際のリテラルのタイプを決定します。
- 本物の文字通りの接尾辞
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;
略してそれはありません。使用するだけです short s = 1;
.
所属していません StackOverflow