java - 比较 Java 中的数字

原文 标签 java comparison numbers

在 Java 中,所有数字类型都从 java.lang.Number 扩展而来。有一个像下面这样的方法是个好主意吗:

public boolean areEqual(Number first, Number second) {
    if (first != null && second != null) {
        return first.equals(second);
    }
}

我担心 double 2.00000 不等于 int 2 的情况。这些是由内置 equals 处理的吗?如果没有,有没有办法在java中编写一个简单的数字比较函数? (外部库如 apache commons 都可以)

最佳答案

一个 Double从不 equalsInteger .此外,doubleDouble 不一样.

Java 有原始类型和引用类型。 Java 中真正的数字类型不是从 Number 扩展而来的。 ,因为他们是原始人。

您可能需要考虑一个不混合类型的系统,因为这通常会导致隐式/显式转换的很多麻烦,这些转换可能/可能不会丢失信息等。

相关问题

int对比 Integer :

  • What is the difference between an int and an Integer in Java/C#?
  • Is Java fully object-oriented?

  • Number比较:
  • Why doesn't java.lang.Number implement Comparable ?
  • Comparing the values of two generic Numbers

  • 也可以看看
  • Java Language Guide/Autoboxing
  • JLS 4.2 4.2 Primitive Types and Values

    The numeric types are the integral types and the floating-point types. The integral types are byte, short, int, and long and char. The floating-point types are float and double.



  • 关于混合型计算

    混合型计算是 Java Puzzlers 中至少 4 个谜题的主题。 .

    以下是各种摘录:

    it is generally best to avoid mixed-type computations [...] because they are inherently confusing [...] Nowhere is this more apparent than in conditional expressions. Mixed-type comparisons are always confusing because the system is forced to promote one operand to match the type of the other. The conversion is invisible and may not yield the results that you expect

    Prescription: Avoid computations that mix integral and floating-point types. Prefer integral arithmetic to floating-point.

    关于java - 比较 Java 中的数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3214448/

    相关文章:

    java - 向 HashSet 输入有意义的相等数据

    c++ - 虚拟方法作为 Comp 函数进行排序

    string - 可以直接比较存储为字符串/文本的日期吗?

    python - 这个python素数函数有什么问题?

    java - 在Java中使用整数 vector 作为种子生成随机数

    java - Java中的数字金字塔

    java - 窗口扩展时,gridbag布局中的Java-TitledBorder扩展

    java - 在我的textapp中打开文本文件

    java - 使用rjb将ruby hash转换为Java hashmap

    python - 在列表和字符串中查找匹配的单词