如何检查双精度值是否为负值?[已关闭]

2022-09-04 04:58:55

正如标题所暗示的,我如何检查特定是否为负数。以下是我如何获取实例DoubleDouble

(Double.parseDouble(data[2])

想法,建议?


答案 1

迂腐,不会给你所有的负数。< 0

double d = -0.0;
System.out.println(d + " compared with 0.0 is " + Double.compare(d, 0.0));
System.out.println(d + " < 0.0 is " + (d < 0.0));

指纹

-0.0 compared with 0.0 is -1
-0.0 < 0.0 is false

-0.0为阴性但不小于0.0

您可以使用

public static boolean isNegative(double d) {
     return Double.compare(d, 0.0) < 0;
}

一个更有效,如果更钝的版本是检查有符号位。

public static boolean isNegative(double d) {
     return Double.doubleToRawLongBits(d) < 0;
}

注意: 在 IEEE-754 下,NaN 可以具有与负数相同的有符号位。


答案 2
Double v = (Double.parseDouble(data[2]));
if (v<0){
//do whatever?
}

推荐