Egloos | Log-in


[C#] 정수를 실수로 형변환할 때 주의

C#에서 정수(Int32)의 범위는 -2147483647 ~ 2147483647 이다.
따라서, 아래와 같이 값이 큰 정수를 계산 후에 실수 변수에 저장하는 경우에 주의해야 한다.

            int n = 1234567;
            double x = (double)(n * n);
            double y = (double)n * (double)n;

1) x = -557712591; 오류!
  형변환 전에 먼저 n*n 계산과정에서 overflow가 발생하여 잘못된 값이 x에 저장된다.

2) y = 1524155677489; 정답!

이 글과 관련있는 글을 자동검색한 결과입니다 [?]

by 헤이즐넛 | 2009/07/14 11:56 | 프로그래밍 | 트랙백 | 덧글(1)

트랙백 주소 : http://hazelstyle.egloos.com/tb/5011362
☞ 내 이글루에 이 글과 관련된 글 쓰기 (트랙백 보내기) [도움말]
Commented by 웃구사세 at 2009/07/14 11:59
오 재미있는데요~

:         :

:

비공개 덧글

◀ 이전 페이지          다음 페이지 ▶