[英]I am having trouble with the .compareTo function
這可能是一個非常簡單的修復,但我不確定我做錯了什么。 我收到錯誤“無法解析 method.compareTo(double)”
public static void main(String[] args) throws IOException {
Double angle = getUserDouble("Enter an angle in degrees:");
Double userHeightInput = getUserDouble("Enter the height in meters:");
final double G = 9.81;
final double DT = 0.01;
double theta = 45;
double speed = 100.0;
double xPos = 0.0;
double yPos = userHeightInput;
double vX = speed *Math.cos(2.*Math.PI*theta/360);
double vY = speed *Math.sin(2.*Math.PI*theta/360);
double aY = -1.0;
double aX = 0.0;
double time = 0.0;
FileWriter out = new FileWriter("output.csv");
while (yPos.compareTo(0.0) > 0.0)
{
xPos = xPos + vX * DT;
yPos = yPos + vY * DT;
vX = vY + aX * DT;
vY = vY + aY * DT;
}
String line = time + "," + xPos + "," + yPos + ","+ vX + "," +vY;
out.write(line);
out.close();
}
我相信發生此錯誤是因為必須在對象上調用 .compareTo(),但 double 是原始類型。 嘗試使用 >、<、== 等運算符進行簡單比較。 例子:
while (yPos > 0.0)
另一種選擇是將 double 解析為 Double,以使其工作。 但是,上面的選項似乎是更明顯和值得推薦的選項。
您不能從原語調用方法。 使用Double
的實例而不是double
。
Double yPos = new Double(value);
我假設您在執行此操作時可能需要更改打印輸出,在這種情況下使用yPos.doubleValue()
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.