Java中双值相等的比较

Java中双值相等的比较,java,double,Java,Double,我正在比较从用户输入中收到的两个双值。 代码如下: import java.util.Scanner; class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); System.out.println("Please enter two numbers: "); Double a = scan.nextDouble(); Double b = scan.

我正在比较从用户输入中收到的两个双值。
代码如下:

import java.util.Scanner;

class Main {
public static void main(String[] args) {
  Scanner scan = new Scanner(System.in);
  System.out.println("Please enter two numbers: ");
  Double a = scan.nextDouble();
  Double b = scan.nextDouble();
  if (a>b){
   System.out.println("Largest is: " + a);}
  if(b>a){
   System.out.println("Largest is: " + b);}
   System.out.println(a+""+b);
  if (a==b){
    System.out.println("Largest is: " + b);}
  }
}
当我输入大于/小于彼此的两个值时,此代码起作用。但是,当我输入两个完全相同的双精度值(例如:
9.0
9.0
)时,此代码不起作用
这是为什么?

提前感谢

就像@GBlodgett和@ScaryWombat在评论中说的那样,
Double
是一个对象,所以在我的代码中,我基本上比较对象是否相同。
因此,要比较两个双值,我可以做:
a.equals(b)
或像这样使用.compare()函数:
Double.compare(a,b)==0


但是,如果我只是使用
double
而不是
double

double是一个对象,我根本不需要这样做。使用
.equals()。当您需要
double
时,只需使用
double
,当您需要
double
时,只需使用
double
。在这种情况下,您需要
double