지극히 기본적이면서 당연한 이야기지만
내가 예전에 했던 커다란 실수에 대해서 적어볼까 한다.
C# 에서는 Convert 라는 각종 기본 자료형의 값을 형변환하는 클래스를 제공하고 있다.
Convert 관련 MSDN : http://msdn.microsoft.com/ko-kr/library/dsfy6sz9
또한 예전처럼 b = (int)a 이런 식으로 형변환자를 통해서도 가능하다.
예전에 Zoom Factor 의 변경에 의한 Child 의 Location 과 Size 를 재조정하기 위해
약간의 계산식을 만드는데 ZoomFactor 는 실수(float, double) 였고 Location 과 Size 는 정수(int...) 였다.
아무 생각없이 실수를 정수로 형변환하면서 위의 2가지 방법을 혼용해서 사용하였고
결론만 이야기 하면 내가 원하는 답이 나오지 않았다.
(int)1.5 를 하면 소수점 아래자리는 소실되어 1 이 나온다....뭐 아주 당연한거다.
Convert.ToInt32(1.5) 를 하면 반올림이 되서 2 가 나온다.
이 차이는 결과에 엄청난 차이를 발생시키기에 충분하다.
두가지 방법이 같다고는 생각안했지만 다르다고도 생각을 안하고 있었다.
그냥 아무 생각이 없었던 것 같다.
'Dev::DotNet > C#' 카테고리의 다른 글
System.Environment.CurrentDirectory 의 경로 (0) | 2012.08.04 |
---|---|
Assembly 의 Version 을 날짜로 바꾸기 (1) | 2012.08.03 |
네트워크 폴더 접속 (0) | 2012.08.02 |
다중 실행 방지를 위한 Mutex (0) | 2012.07.23 |
Unhandled Exception 에 대한 처리 (1) | 2012.07.21 |