如何检查双精度值是否为负值?[已关闭]
正如标题所暗示的,我如何检查特定是否为负数。以下是我如何获取实例Double
Double
(Double.parseDouble(data[2])
想法,建议?
正如标题所暗示的,我如何检查特定是否为负数。以下是我如何获取实例Double
Double
(Double.parseDouble(data[2])
想法,建议?
迂腐,不会给你所有的负数。< 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 可以具有与负数相同的有符号位。
Double v = (Double.parseDouble(data[2]));
if (v<0){
//do whatever?
}