Java Double.compareTo() 方法及代码示例
以数字方式比较两个 Double 对象.
初见版本
1.2定义
public int compareTo(Double anotherDouble)
参数
参数类型 | 参数名称 | 参数描述 |
---|---|---|
Double | anotherDouble | 要比较的另一个 Double |
返回值
若:
- 当前浮点数大于 anotherDouble, 返回大于 0 的数字;
- 当前浮点数等于 anotherDouble, 返回 0;
- 当前浮点数小于 anotherDouble, 返回小于 0 的数字.
说明
当应用于原始 double
值时, 此方法执行的比较与 Java 语言数值比较运算符(<、<=、==、>=、>)执行的比较有两种不同之处:
- 此方法认为
Double.NaN
等于其自身并且大于所有其他双精度值(包括Double.POSITIVE_INFINITY
) - 此方法认为
0.0d
大于-0.0d
(负0)
这样可以保证由此方法增强计算的 Double
对象的自然排序结果与 equals()
一致
本方法由 Comparable<Double>
接口的 compareTo()
方法指定实现
示例
使用 compareTo() 比较两个双精度浮点数的大小
package com.yi21.Double; public class Yi21DoubleCompareTo { public static void main(String[] args) { myCompareTo(Double.NaN, Double.POSITIVE_INFINITY); myCompareTo(0.0, -0.0); myCompareTo(10.0, 7.2); myCompareTo(1.0, Double.NEGATIVE_INFINITY); myCompareTo(Double.NaN, Double.NaN); } private static void myCompareTo(Double d1, Double d2) { int r = d1.compareTo(d2); String operation = ""; if(r > 0) { operation = "大"; } else if(r < 0) { operation = "小"; } else { operation = "等"; } System.out.println(d1 + " " + operation + "于 " + d2); } }
执行结果为 :
NaN 大于 Infinity 0.0 大于 -0.0 10.0 大于 7.2 1.0 大于 -Infinity NaN 等于 NaN