1
我試圖輸出一個非常簡單的值不同,但我得到是很奇怪:Java結果真的與預期一個
Log.d("try", "distanceWithMaxSpeed > " + ((90 * (1000/3600)) * ((3000 - 2000)/1000)));
我得到0,而不是25!我錯在哪裏?
我試圖輸出一個非常簡單的值不同,但我得到是很奇怪:Java結果真的與預期一個
Log.d("try", "distanceWithMaxSpeed > " + ((90 * (1000/3600)) * ((3000 - 2000)/1000)));
我得到0,而不是25!我錯在哪裏?
整數除法
1000/3600 = 0
你應該改變他們漂浮(90f
)或雙打(90.0
)
你做的整數除法。如果分子是小於除數,操作數的話,至少一個應該是double
:
Log.d("try", "distanceWithMaxSpeed > " + ((90 * (1000.0/3600)) * ((3000 - 2000)/1000)));
^^
我簡化的示例發佈它,但我有兩個函數式中返回一個雙。但我曾經獲得一個零雖然!通過拖尾每個操作數與.0,一切正常工作:-) – Bertuz