218

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ます。

4

5 に答える 5

369
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のリテラル指定子はありません

于 2011-04-28T15:07:18.130 に答える
44

整数リテラルから:

整数リテラルのタイプは、次のように決定されます。

  • リテラルに接尾辞がない場合、その値を表すことができる最初のタイプがあります:int、、、。uintlongulong
  • リテラルの接尾辞がまたはの場合、Uそのu値を表すことができる最初のタイプがあります:uintulong
  • リテラルの接尾辞がまたはの場合、Lそのl値を表すことができる最初のタイプがあります:longulong
  • リテラルの接尾辞が、、、、、、、、、またはの場合、ULタイプはです。UluLulLULulUluulong

そして、実際のリテラルから:

実数型の接尾辞が指定されていない場合、実数リテラルの型はdoubleです。それ以外の場合、実際のタイプの接尾辞は、次のように実際のリテラルのタイプを決定します。

  • Fまたはが接尾辞として付けられた実際のリテラルfは、タイプfloatです。たとえば、リテラル、、、、および1fはすべてタイプです。1.5f1e10f123.456Ffloat
  • Dまたはが接尾辞として付けられた実際のリテラルdは、タイプdoubleです。たとえば、リテラル、、、、および1dはすべてタイプです。1.5d1e10d123.456Ddouble
  • Mまたはが接尾辞として付けられた実際のリテラルmは、タイプdecimalです。たとえば、リテラル、、、、および1mはすべてタイプです。このリテラルは、正確な値を取得することによって10進値に変換され、必要に応じて、銀行の丸めを使用して最も近い表現可能な値に丸められます(セクション4.1.7)。値が丸められるか、値がゼロでない限り、リテラルで明らかなスケールは保持されます(後者の場合、符号とスケールは0になります)。したがって、リテラルは、符号、係数、およびスケールを持つ小数を形成するために解析されます。1.5m1e10m123.456Mdecimal2.900m029003
于 2011-04-28T15:07:34.913 に答える
9

変数がまだ短い場合は、明示的にキャストする必要があります。

Object s = (Int16) 1;
于 2013-03-14T16:00:07.797 に答える
3

略して1つはありません。を使用するだけshort s = 1;です。

于 2011-04-28T15:07:22.150 に答える
0

var myValue = unchecked((short)0x7F00);

リテラルはintであるため、ターゲット型にキャストする必要があります。値のオーバーフローが発生した場合は、チェックを外す必要があります。

于 2022-01-26T05:51:53.270 に答える