簡體   English   中英

我在使用 the.compareTo function 時遇到了問題

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM