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
。