gpt4 book ai didi

java - 在 Double 中使用 > 和 < 运算符是否安全

转载 作者:行者123 更新时间:2023-12-01 16:48:51 24 4
gpt4 key购买 nike

在 Java 中直接将以下比较运算符与 Double 包装类一起使用是否安全并且被认为是一种良好的做法: ><<=>=

我已经尝试过,它似乎有效,如以下代码:

Double tiny = 1.2;
Double big = 125.65;

System.out.println(tiny > big);
System.out.println(tiny >= big);
System.out.println(tiny < big);
System.out.println(tiny <= big);

产生此输出:

false
false
true
true

然而,据我所知,Java不支持运算符重载,并且 official documention没有对此说任何一句话,因此我的问题。

最佳答案

来自the language spec (我自己强调):

15.20.1. Numerical Comparison Operators <, <=, >, and >=

The type of each of the operands of a numerical comparison operator must be a type that is convertible (§5.1.8) to a primitive numeric type, or a compile-time error occurs.

Binary numeric promotion is performed on the operands (§5.6.2).

Note that binary numeric promotion performs value set conversion (§5.1.13) and may perform unboxing conversion (§5.1.8).

哪里Sec 5.1.8还说:

A type is said to be convertible to a numeric type if it is a numeric type (§4.2), or it is a reference type that may be converted to a numeric type by unboxing conversion.

所以,是的,使用带有数字比较运算符的包装原语是没问题的;它们首先被拆箱。

关于java - 在 Double 中使用 > 和 < 运算符是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44675901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com