10 진수 유형에 대한 선언 접미사


113

코드에서 십진수 리터럴을 사용하려면 m 접미사 (m은 돈을 의미 함)가 있음을 확인했습니다. 이것이 소수에 적합합니까 아니면 더 일반적인 대입이 있습니까 (d는 double을 의미하며 직접 변환이 지원되지만 확실히 올바른 것은 아닙니다).

object decimalValue=2m;

객체 할당을 예로 들어 보았습니다.

decimal decimalValue=2;

... 2는 컴파일러를 통해 10 진수로 해석되어야한다는 것이 암시 적으로 분명합니다.

m 은 괜찮아 보이지만 msdn 은 십진수 유형의 예로 사용합니다.

답변:


234

에 설명 C # 언어 사양 , 장 2.4.4 :

float f = 1.2f;
double d = 1.2d;
uint u = 2u;
long l = 2L;
ulong ul = 2UL;
decimal m = 2m;

int, byte, sbyte, short, ushort에는 아무것도 없습니다.


접미사는 아니지만 문자 char c = 'a'주위에 아포스트로피 를 사용하여 문자를 선언 할 수도 있습니다 .
Kevin Hogg

: 당신은 또한 더 사용하기 쉬운이 문서에 참조 할 수 있습니다 docs.microsoft.com/en-us/dotnet/csharp/language-reference/...
더글러스 Gaskell

22

접미사가 없으면 숫자 실수 리터럴은 Double이됩니다. m 접미사는 숫자 실수 리터럴이 Decimal이어야 함을 지정합니다.

부동 소수점 값 (예 : Double)에 대한 산술이 부정확하기 때문에 실제로 아는 것이 중요합니다. 예를 들면 :

object decimalValue=(5.32 + 2.23);

여기서 decimalValue는 실제로 예상치 못한 7.5500000000000007의 Double 값을 포함합니다! 7.55를 원하면 다음과 같이 할 수 있습니다.

object decimalValue=(5.32m + 2.23m);

더 일반적인 접미사가 있는지 여부에 대한 질문에 대답하려면 m은 C #에서 Decimal 의 유일한 접미사입니다. 언급했듯이 돈을 의미 할 수도 있지만, Double!에서 사용하는 d가 아닌 다른 것을 사용했습니다.

추가 정보 : 10 진수 (C # 참조)


1
감사합니다. 답을 입력 한 그대로 msdn-link를보고 내 질문에 넣었습니다. 그러나 나는 접미사 때문에이 게시물에 올 사람들에게 많은 도움이 될 좋은 목록이 있기 때문에 Hans Passant의 게시물을 수락했습니다. 그러나 확실히 감사합니다.
HCL

0

Declare Decimal in C #에 대한 간단한 대답

decimal firstMoney = 141.28m;

O / P : 141.28

decimal secondMoney = 100.00m;

O / P : 100

자세한 내용은 MSDN을 참조하십시오 .

희망은 누군가를 돕습니다.


@Thomas, 이해하지만 십진법 선언을 검색하는 사람들에게 짧은 답변을 주려고했는데 게시물을 삭제해야합니까? , 유용하지 않다고 생각하십니까?
shaijut

3
나는 그것이 유용하지 않다고 생각 하지만 완벽 하지는 않으며 다른 사람들에게 도움 이 수 있습니다. 두 번째 읽기에서 유용하지 않다고 생각되면 삭제할 수 있습니다. 당신은 :)와 같이 그것을두고 사람을 도와 있다고 생각하는 경우
토마스 아 유브

2
@ThomasAyoub 개인적으로 Hans 답변 이 아직 다루지 않은 것이 추가되는 것을 보지 마십시오.
Lankymart
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.