首页 > 解决方案 > 错误:找不到适合 add(double) arr.add(root1) 的方法;

问题描述

int D = b*b - 4*a*c;
double root1; 
double root2;

if(D<0){
    System.out.println("Imaginary");
}
else if(D==0){
    root1=root2= Math.floor((-b)/(2*a));
}

else if(D>0){
    root1= Math.floor(((-b)+ Math.sqrt(D))/(2*a)); 
    root2= Math.floor(((-b) - Math.sqrt(D))/(2*a));   
}

ArrayList<Integer> arr = new ArrayList<Integer>();

arr.add(root1);
arr.add(root2);

return arr;
error: no suitable method found for add(double)
    arr.add(root1);
       

如何解决这个问题?
我不知道如何将其转换为所需的输出,请帮助!

标签: java

解决方案


double root1; 
// ...
ArrayList<Integer> arr = new ArrayList<Integer>();

如果您尝试添加root1arr,它是不兼容的。Adouble不能添加到Integer类型中。

要么改变:

List<Double> arr = new ArrayList<Double>();

或者:

int root1;
root1 = (int) Math.floor(((-b)+ Math.sqrt(D)) / (2 * a)); 

推荐阅读