2013-05-16 36 views
1

我試圖輸出一個非常簡單的值不同,但我得到是很奇怪:Java結果真的與預期一個

Log.d("try", "distanceWithMaxSpeed > " + ((90 * (1000/3600)) * ((3000 - 2000)/1000))); 

我得到0,而不是25!我錯在哪裏?

回答

3

整數除法

1000/3600 = 0

你應該改變他們漂浮(90f)或雙打(90.0

3

你做的整數除法。如果分子是小於除數,操作數的話,至少一個應該是double

Log.d("try", "distanceWithMaxSpeed > " + ((90 * (1000.0/3600)) * ((3000 - 2000)/1000))); 
                ^^ 
+0

我簡化的示例發佈它,但我有兩個函數式中返回一個雙。但我曾經獲得一個零雖然!通過拖尾每個操作數與.0,一切正常工作:-) – Bertuz