java类型不匹配:无法在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();
}
}
# 1 楼答案
将其转换为int:
这是因为数学。pow()需要两个double并返回一个double。因此,运行时将
b
和2
从int
向上投射到double
,然后返回一个double
。然后它将向上投射4
、a
和c
到double
s。结果是double
。它必须被转换回int
。在这种情况下这是安全的,因为我们知道所有的输入值都是int
s