Java 计算结果不正确

Java 计算结果不正确,java,math,equation,Java,Math,Equation,我编写了以下代码 import java.util.Scanner; public class Equations { public static void main (String [] args) { Scanner scan = new Scanner (System.in); System.out.println ("This program solves a system of 2 linear

我编写了以下代码

import java.util.Scanner;

public class Equations
    {
        public static void main (String [] args)
        {
            Scanner scan = new Scanner (System.in);
            System.out.println ("This program solves a system of 2 linear equations" +"\n"+
            "Enter the coefficients a11 a12 a21 a22 b1 b2:");
            int a11 = scan.nextInt();
            int a12 = scan.nextInt();
            int a21 = scan.nextInt();
            int a22 = scan.nextInt();
            int b1 = scan.nextInt();
            int b2 = scan.nextInt();

            System.out.println ("Eq: " + a11 + "*x1" + "+" + a12 + "*x2 = " + b1);
            System.out.println ("Eq: " + a21 + "*x1" + "+" + a22 + "*x2 = " + b2);

            if(((a11*a22)-(a12*a21))!=0){
                double Equ1single = ((b1*a22)-(b2*a12))/((a11*a22)-(a12*a21));
                double Equ2single = (((b2*a11)-(b1*a21)))/(((a11*a22)-(a12*a21)));
                System.out.println ("Single solution: (" + Equ1single + "," + Equ2single + ")");
            }
       }  
   }
插入“123456”时收到的结果为“-4.0,4.0”, 而它应该是“(-4.0,4.5)”。 我已经试着弄清楚为什么会发生这种情况,但我找不到任何原因。我发现我的计算公式是正确的

问题在哪里

double Equ1single = ((b1*a22)-(b2*a12))/((a11*a22)-(a12*a21));
/
是整数除法,因为所使用的两个
/
操作数都是
int
类型。整数除法产生一个整数值,即使它的结果后来被分配给了一个
double
。将
/
操作数强制转换为
double
以获得
double
除法。(与
equale
声明相同。)


/
是整数除法,因为所使用的两个
/
操作数都是
int
类型。整数除法产生一个整数值,即使它的结果后来被分配给了一个
double
。将
/
操作数强制转换为
double
以获得
double
除法。(与
eq2single
声明相同。)

int/int
仍然是
int
,整数没有小数部分。如果需要可以处理分数的类型,请使用
double
(也用作操作数)。
int/int
仍然是
int
,整数没有分数部分。如果需要可以处理分数的类型,请使用
double
(也作为操作数)。