【发布时间】:2019-01-11 01:59:25
【问题描述】:
我正在比较从用户输入收到的 2 个双精度值。
这是代码:
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)
这是为什么呢?
提前致谢
【问题讨论】:
-
Double 是一个对象。使用
.equals() -
您在问
aObject 是否与bObject 相同 -
不要乱搞
.equals()。只需在需要double时使用double,在需要Double时使用Double。在这种情况下,您需要double。