有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

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) 个答案

  1. # 1 楼答案

    将其转换为int:

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

    这是因为数学。pow()需要两个double并返回一个double。因此,运行时将b2int向上投射到double,然后返回一个double。然后它将向上投射4acdoubles。结果是double。它必须被转换回int。在这种情况下这是安全的,因为我们知道所有的输入值都是ints