java - 对我的代码进行测试并收到意外的答案

标签 java

我正在尝试从下图中的测试 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");
        }

}

}

enter image description here

最佳答案

您将 double 自动装箱为 java.lang.Double,这将是相等的,但可能不会使用完全相同的引用。

您应该使用原始的 doubles:

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/

相关文章:

java - 将一个元素从一个 listView 添加到另一个 listView

java - 是否可以在 Android 中动态更改 EditTextPreference 的摘要?

java - iText如何从可填充模板创建多页文档

java - token "else,"上的语法错误删除此 token

java - 在 Eclipse 中,定义嵌套类

java - axis-wsdl4j 和 wsdl4j 之间的区别

java - 检查 for 循环内条件的最短代码

java - 返回java中元音最多的单词

java - 是否可以让用户编辑 R.string?

java - 更改数组中的半特定值 - Java