🤖
AI审核中

Integer 和 Double 如何判断相等

文章摘要

Integer 与 Double 不能直接使用 `==`、字符串比较或 `compareTo` 进行相等判断,因为它们类型不同且 `compareTo` 只能在同类之间使用。两者都继承自 `Number`,该类提供 `intValue、doubleValue` 等转换方法。可先将 Integer 与 Double 转换为相同的基本类型(如 `double`),再使用 `==` 比较数值是否相等。示例代码展示了 `i.doubleValue() == d.doubleValue()` 返回 `true`,实现了正确的相等判断。

Integer、Double不能直接进行比较,这包括:

  • 不能用==进行直接比较,因为它们是不同的数据类型;
  • 不能转为字符串进行比较,因为转为字符串后,浮点值带小数点,整数值不带,这样它们永远都不相等;
  • 不能使用compareTo方法进行比较,虽然它们都有compareTo方法,但该方法只能对相同类型进行比较。

整数、浮点类型的包装类,都继承于Number类型,而Number类型分别定义了将数字转换为byte、short、int、long、float、double的方法。所以,可以将Integer、Double先转为转换为相同的基本数据类型(如double),然后使用==进行比较。

package top.hqxiaozou.integer;

/**
 * @author:邹祥发
 * @date:2023/2/13 15:11
 */
public class NumberTest {
    public static void main(String[] args) {
        Integer i = 100;
        Double d = 100.00;
        System.out.println(i.doubleValue() == d.doubleValue());
    }
}

0 条评论

如果你觉得文章对你有帮助,那就请作者喝杯咖啡吧

评论区 0

头像
 0 条评论