안드로이드 개발 질문/답변
(글 수 45,052)
long time_week=1000*60*60*24*7;
Log.i("Namecard", "time : "+time_week);
long time_month=1000*60*60*24*30;
Log.i("Namecard", "time : "+time_month);
분명히 두 변수 모두 long으로 지정했는데
time_week는 정상적인 값이 나오는데 time_month값은 음수로 나옵니다...
저 식을 계산한 값을 직접 집어 넣어버리면 밑에거는 out of range라네요...
분명 저 값은 제가 알기로는 long 변수에서 커버되는 범위입니다
무엇이 문제인가요?




기본형이 int인지라 우변 값을 int로 계산합니다. int로 계산된 결과를 좌변에 맞게 형변환해서 넣어주겠죠. 그래서 - 내지는 범위 초과가 나옵니다.
숫자 중에서 하나라도 마지막에 L을 붙여주시면 long형이 포함된 계산식이라서 long형으로 계산하게 됩니다.