我正在比较从用户输入中收到的两个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.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
)时,此代码不起作用
为什么呢?
预先感谢
答案 0 :(得分:-2)
就像@GBlodgett和@ScaryWombat在评论中说的,Double
是一个对象,因此在我的代码中,我基本上比较了两个对象是否相同。
因此,我可以比较两个double值:
a.equals(b)
或使用.compare()函数,例如:Double.compare(a,b)==0
但是,如果我只使用double
而不是Double