编译器报告调用 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 个 double 并返回一个 double 。因此,运行时会将 b
和 2
从 int
向上转换为 double
,然后返回 double
。然后它将 4
、a
和 c
向上转换为 double
。结果是一个double
。它必须被强制转换回int
。在这种情况下这是安全的,因为我们知道所有输入值都是 int
。
关于java - 类型不匹配 : cannot convert from double to integer in eclipse,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59651205/