编译器将调用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 个双精度值并返回一个双精度值。 因此,运行时会将b
和2
从int
向上转换为double
,然后返回double
。 然后它会向上投4
、a
和c
double
。 结果是double
. 它必须被抛回int
. 在这种情况下,这是安全的,因为我们知道所有输入值都是int
s。