类型不匹配:无法在 eclipse 中从双精度转换为整数



编译器将调用Math.pow()的行报告为错误。我正在制作一个程序,通过使用带有类输入变量的二次公式来计算二次解。方便的箭头

import java.util.*;
public class QuadraticFormula {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter a: ");
int a = input.nextInt();
System.out.println("Enter b: ");
int b = input.nextInt();
System.out.println("Enter c: ");
int c = input.nextInt();
→   int discriminant = (Math.pow(b, 2) - 4*a*c);
input.close();
}
}

将其转换为 int:

int discriminant = (int)(Math.pow(b, 2) - 4*a*c);

这是因为 Math.pow(( 期望 2 个双精度值并返回一个双精度值。 因此,运行时会将b2int向上转换为double,然后返回double。 然后它会向上投4acdouble。 结果是double. 它必须被抛回int. 在这种情况下,这是安全的,因为我们知道所有输入值都是ints。

最新更新