import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
ArrayList<String> list = new ArrayList<>();
double a = scanner.nextDouble();
double b = scanner.nextDouble();
double c = scanner.nextDouble();
double d = scanner.nextDouble();
for (int i=-100;i<100;i++){
double x=a*Math.pow(i,3)+b*Math.pow(i,2)+c*i+d;
double y=a*Math.pow(i+1,3)+b*Math.pow(i+1,2)+c*(i+1)+d;
double m=x*y;
String m1 = String.format("%.3f", m);
double v = Double.parseDouble(m1);
if (v<=0){
for (double j=i;j<=i+1-0.01;j=j+0.01){
double z=a*Math.pow(j,3)+b*Math.pow(j,2)+c*j+d;
double f=a*Math.pow(j+0.01,3)+b*Math.pow(j+0.01,2)+c*(j+0.01)+d;
double n=z*f;
String n1 = String.format("%.3f", n);
double v1 = Double.parseDouble(n1);
String z1 = String.format("%.3f", z);
double z2 = Double.parseDouble(z1);
String f1 = String.format("%.3f", f);
double f2 = Double.parseDouble(f1);
if (v1<=0){
String s;
if (Math.abs(z)>Math.abs(f)){
s = String.format("%.2f", j+0.01);
}else {
s = String.format("%.2f", j);
}
if (!list.contains(s)) list.add(s);
break;
}
}
}
}
System.out.println(list.get(0)+" "+list.get(1)+" "+list.get(2));
}
}
有没有Java大佬能给我的代码优化一下,浮点数计算机制我真的好烦啊!!!