2016-10-04 52 views
0

我正在做一個類,我試圖創建一個以時間爲參數,並做此公式找到距離的方法,我已經創建了一個方法的價值的問題的東西:具有計算從使用公式

d(t) = vt cosθ 

其中d(t)是距離,v是速度,t是時間,θ是以度爲單位的角度。

這是我寫它在Java中,然後我測試,但沒有得到正確的結果。

如果我用這些值計算距離:velocity = 21 time = 43 angle = 62我得到了423.93的結果,但是如果我把它放在我的測試類中並使用方法(並放入相同的值)得到487.89。

我做錯了什麼?爲什麼我得到這個價值?

方法:

public double getDistance(double time) { 
    double vt = velocity * time; 
    angle = (int) Math.toRadians(angle); 
    double cosineCalc = Math.cos(angle); 
    double distance = vt * cosineCalc; 
    return distance; 

測試類的實現:

Projectile testOne = new Projectile(21, 62); 
double actual = testOne.getDistance(43); 

回答

2

的問題是,(int) Math.toRadians(angle)失去精度,並結束了其四捨五入爲整數。要使其工作,請確保angle保留爲double並刪除(int)強制轉換。

+0

狗屎你說得對......現在我只需要問我的教授爲什麼他讓我把角爲int ...感謝您的答案,雖然 –

0
angle = (int) Math.toRadians(angle); 

刪除(整型)鑄件,它應該工作。