java - 错误:找不到适合 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);
如何解决这个问题?
我不知道如何将其转换为所需的输出,请帮助!
解决方案
double root1;
// ...
ArrayList<Integer> arr = new ArrayList<Integer>();
如果您尝试添加root1
到arr
,它是不兼容的。Adouble
不能添加到Integer
类型中。
要么改变:
List<Double> arr = new ArrayList<Double>();
或者:
int root1;
root1 = (int) Math.floor(((-b)+ Math.sqrt(D)) / (2 * a));
推荐阅读
- javascript - 通过html元素获取Vue组件
- python - Sagemaker 在容器中找不到路径
- scala - 当未明确指定类型参数时,Scala 下限类型参数不起作用
- javascript - CSS 不适用于标签,write() 方法包含在函数内部
- excel - 如何使用偏移函数在excel中获取不同数据集的斜率?
- c++ - 高斯模糊缩小缩放图像?
- django - 无法在 django 视图中使用 PUT Ajax 请求接收数据值
- c# - Swagger Swashbuckle 路线阻塞
- python - DBSCAN kdist-绘制多个山谷
- c++ - 流行的 vscode #include iostream 错误