C # short / long / int 리터럴 형식? / C 번호 / 등에서 당신은

C / C 번호 / 등에서 당신은 문자 번호 (가로 보이는 아니라고 컴파일러를 말할 수있는, 즉. 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 실시간 리터럴 :

실수 형식 접미사가 지정되지 않으면 실수 리터럴의 형식은 두 배입니다. 그렇지 않으면 실수 형식 접미사는 다음과 같이 실수 리터럴의 형식을 결정합니다.

  • 접미사가 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. 이 리터럴은 정확한 값을 취하고 필요에 따라 은행가의 반올림을 사용하여 가장 가까운 표현 가능한 값으로 반올림하여 10 진수 값으로 변환됩니다 (4.1.7 단원). 값이 반올림되거나 값이 0이 아니면 리터럴에 표시된 모든 스케일이 유지됩니다 (후자의 경우 부호와 스케일이 0 임). 따라서 리터럴 2.900m은 구문 분석되어 sign 0, coefficient 2900및 scale과 함께 10 진수를 형성합니다 3.

답변

변수가 아직 짧지 않은 경우 명시 적으로 캐스팅해야합니다.

Object s = (Int16) 1;

답변

한마디도 없습니다. 그냥 사용하십시오 short s = 1;.