반응형
아놔.. 순간... 멍때렸다... 모니터앞에서..
float test = "1.9";
int nTest = (int) (test * 10);
nTest 기대치 : 19
nTest 결과값 : 18
int nTest = (int) (test * 10);
nTest 기대치 : 19
nTest 결과값 : 18
nTest의 갑은 19가 나와야 정상이지만, 18이 나온다... 씨팔...이 나옴.ㅇ_ㅇ
근데 조금 해석에 더 가까이 다가가보니 이런 결과나 나옴..
nTest = (int) (flaot) (test * 10)
nTest 기대치 : 19
nTest 결과밧 : 19 (레알 나와버렸음)
nTest 기대치 : 19
nTest 결과밧 : 19 (레알 나와버렸음)
왜 그런가 봤더니.. 비교를 구지 하자면,
nTest(18) = (int)(flaot * 10);
nTest(18) = (int)(double)(flaot * 10);
nTest(19) = (int)(float)(flaot * 10);
nTest(18) = (int)(double)(flaot * 10);
nTest(19) = (int)(float)(flaot * 10);
(test * 10) = (flaot * 10) = double로 자동형변환이 되었고
double To int 에서는 -1되는 현상이 있다고 함....
현상의 이유는 많은 이들이 모른데... 그냥 +0.5를 해서 형변환시키면 된다고 함.. ㅠㅠ
오늘도 여튼 삽질 ... 했음
반응형
'I.T > Programming' 카테고리의 다른 글
[C++]RegOpenKeyEx, RegQueryValueEx, RegSetValueEx (CString, TCHAR) (0) | 2014.01.14 |
---|---|
소스코드 HTML 브러쉬 설정 (0) | 2014.01.14 |
암복호화 관련한 용어 팁, Encrypt, Decrypt, Mode, Padding (0) | 2013.06.18 |
WPF 개발자가 MVVM을 선호하는 이유 (3) | 2013.02.20 |
[C#]Visual Studio .Net 에서 MDA 오류로 디버깅 못할 때 (0) | 2013.02.07 |