2014-06-14 2 views
-1

아래의 수학 연산이 나에게 0.0수학 표현식은 항상 0입니까?

Mathematical_expression을 제공하지 왜 내가 할 :

double percentageAmongAll = ((itemClickedID+1)/(parent.getCount())); 

Logcat_Output :

06-14 13:46:53.176: I/MySavedLocation(19361): parent.getCount() = 3 
06-14 13:46:53.176: I/MySavedLocation(19361): itemClickedID+1 = 2 
06-14 13:46:53.176: I/MySavedLocation(19361): percentageAmongAll = 0.0 
+1

[당신에게'0'을줍니다] (http://stackoverflow.com/q/22341128/11683). 나중에 만 '0.0'이됩니다. – GSerg

+0

@GSerg하지만 그 결과는 .666666 – user2121

답변

4

itemClickedID+1parent.getCount() 정수 표현입니다. 정수 나누기는 항상 정수를 반환하므로 2/30을 반환하고 0.0으로 변환됩니다.

이렇게하면 itemClickedId이 이중으로 변환되어 이중 분할이 수행됩니다.

+2

'(itemClickedID + 1.0)/(parent.getCount())'가 될 것이라고 기대합니다. '1.0'은 분자를 double로 바꾸어 전체 표현식이 정수가 아닌 double로 계산됩니다. – rossum

+0

물론, 그것을 달성하는 수십 가지 방법이 있습니다. –

+0

@still_learning 제 질문에 투표 해 주시겠습니까? – user2121

관련 문제