我正在尝试从下图中的测试 3 中获得预期结果。有人能指出我正确的方法来解决这个问题吗?
import java.util.Scanner;
/**
* Write a description of class TwoNumbers here.
* @version 1.0
*/
public class TwoNumbers
{
public static void main (String [] args)
{
Scanner input = new Scanner(System.in);
System.out.print("Enter two numbers (like this: 41.7 -22.5): ");
Double number1 = input.nextDouble();
Double number2 = input.nextDouble();
if(number1 == number2)
{
System.out.println("The first number is equal to the second");
}
else if(number1 > number2)
{
System.out.println("The First number is greater than second");
}
else
{
if(number1 < number2)
System.out.println("The first number is less than second");
}
}
}
最佳答案
您将 double
自动装箱为 java.lang.Double
,这将是相等的,但可能不会使用完全相同的引用。
您应该使用原始的 double
s:
double number1 = input.nextDouble();
double number2 = input.nextDouble();
或者,如果您使用 java.lang.Double
,请使用 equals
方法比较它们:,
if (number1.equals(number2))
{
System.out.println("The first number is equal to the second");
}
关于java - 对我的代码进行测试并收到意外的答案,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46464389/