마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

TimerTask 안에서 연산 문제입니다.

0 추천

정말 간단한 코든데 왜 실행이 안되는지 이해가 안되서 올립니다.

startTime 에 0.3씩 0.3초마다 더하라는 의미인데 리턴값은 계속 0으로 잡힙니다.

이 전에는 startTime++ 이였는데 그건 또 잘되더군요 어떻게 해야할까요...?

public void Start(){
    startTimer = new TimerTask() {
        @Override
        public void run() {
            startTime+=0.3;
            Log.d("TIME", "start : " + startTime);
            Running = true;

            if(startTime==15){
                Update();
            }
        }
    };
    Timer timer = new Timer();
    timer.schedule(startTimer, 0, 300);
}
익명사용자 님이 2016년 3월 29일 질문

2개의 답변

+1 추천
startTime 변수형이 뭔가요? float? double?

실수계산인데 설마 int 는 아니죠?

그리고,

0.3 씩 50번 더하면 15가 될 것 같지만 아닐 수 있습니다. 컴퓨터는 2진수로 계산 하거든요.

14.9999999999 또는 15.0000000001 이 될 수 있으니 정수를 사용하세요.

startTime += 300;

...

if (startTime == 15000) {

...
JINASYS (5,630 포인트) 님이 2016년 3월 30일 답변
0 추천
그냥 delay 를 주는거라면 굳이 저리 더하는 이유가 뭐죠?

postDelayed 로 15초를 주시면 될거 같은데
aucd29 (218,390 포인트) 님이 2016년 3월 30일 답변
...