2012-03-05 7 views
1

현재 문제가있어 미친 듯이 움직입니다.Android : float가 계산되지 않음

귀하는 백분율 계산 방법을 알고 있습니다. 그것은 (p/pMax) * 100입니다. 그렇지 않습니까?

그게 바로 내가 코드에서 작성한 것입니다. 하지만이 계산의 결과로 항상 0.0을 얻습니다. 설명을위한 스크린 샷을 참조하십시오.

eclipse screenshot

당신은 플로트 변수 PRG이 계산 (1,944분의 252) * 내가 잘못 뭐하는 거지 100

의 결과로 0.0됩니다 볼 수 있듯이? 원한다면 여기에 변수 초기화를 넣을 수 있습니다.

도와 주셔서 감사합니다.

+0

progress 및 progressMax는 모두 int입니까? – Blackbelt

답변

7

252/1944는 결과를 두 번 입력하더라도 int division으로 처리됩니다. 단지 루타로 캐스팅 변수의 경우 252.0/1944.0

을 시도하거나 수레 (예를 들어 (더블) A/(더블) b)는

LE : 다른 사람이 가지고있는 것처럼 나는 것을 명확히해야한다 예를 들어 작업의 두 변수 중 하나를 부동 소수점 형/이중형으로 캐스팅하면됩니다.

+0

고맙습니다. 나는 그런 생각을하지 못했습니다! – Maksl5

2

p 및 pMax는 아마도 정수이다.

결과는 pMax> p (가능성이 있음)가 0보다 클 때 정수/정수가됩니다. 그러면 0.0이 100으로 곱 해져 0.0이됩니다.

해결책 : 캐스팅 p 또는 pMax를 부동 또는 이중으로 지정하십시오.

4

p 및 pMax는 정수 유형이어야하므로 정수 유형이어야합니다. float 변수 중 하나를 캐스팅합니다 ((p/(float) pMax)*100).

+0

감사합니다! 위와 마찬가지로 문제가 해결되었습니다. – Maksl5

관련 문제