반응형


 


아놔.. 순간... 멍때렸다... 모니터앞에서..

float test = "1.9";
int nTest = (int) (test * 10);

nTest 기대치 : 19
nTest 결과값 : 18

nTest의 갑은 19가 나와야 정상이지만, 18이 나온다... 씨팔...이 나옴.ㅇ_ㅇ
근데 조금 해석에 더 가까이 다가가보니 이런 결과나 나옴..

nTest = (int) (flaot) (test * 10)

nTest 기대치 : 19
nTest 결과밧 : 19 (레알 나와버렸음)

왜 그런가 봤더니.. 비교를 구지 하자면,

nTest(18) = (int)(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를 해서 형변환시키면 된다고 함.. ㅠㅠ

오늘도 여튼 삽질 ... 했음

 

 

반응형
Posted by Rainfly
l