2016-10-27 4 views
1

나는 이것이 매우 쉬워야한다고 생각하지만 나는 곤두박질 친다. 저는 플로트가 5 ~ 10 초마다 업데이트되고 항상 알 수없는 양 (일반적으로 0.0과 200.0 사이)만큼 증가하는 데이터베이스에 저장됩니다 (N이라고 부름). 번호가 304.8을 지나갈 때마다 발생하는 "이정표"를 표시해야합니다.끊임없이 증가하는 정수로 설정된 간격을 지나는 것을 감지하는 방법

mod (304.8 % N)를 사용하여 0을 확인하려고하면 N이 302.2에서 308.6으로 갈 수 있으므로 0으로 계산되지 않습니다.

도달 한 마일스톤 수 (304.8이 전달 될 때마다)를 계산하고 매회 사용자에게 알림을 보내려고합니다. 웬일인지 나는 이것을하는 적당한 방법을 생각할 수 없다.

내 안드로이드 (자바) 프로그램에서 문제가 발생합니다.

+0

글쎄, 이정표에 도달 한 : 새가 이전보다 큰 경우, 당신은 이정표를 통과했습니다. – 4castle

+0

div 연산자는 요청한 것을 수행합니다. '304.8/304.8 = 1','304.8 * 2/304.8 = 1' ... 등등으로 나눕니다. – tenCupMaximum

+0

@ Jaked222 제목을 편집하여 문제 요약을 정확하게 설명하십시오. –

답변

0

n을 마일스톤으로 나누어 결과를 바닥에 매길 수 있습니다. 그런 다음 이전 결과와 비교하십시오. 현재 값의 계수가 이전 값의 계수보다 작은 경우

double interval = 304.8; 
double prev = // saved from the previous round 
double curr = prev + someIncrement(); 
if (Math.floor(curr/interval) > Math.floor(prev/interval)) { 
    milestonePassed(); 
} 
prev = curr; // For next round 
+0

감사합니다. 이것이 도움이되었으며 구현에 도움이되었습니다. – Jaked222