java中,如果作除数的是浮点数0,则编译运行是不会报错的,并且,在此处用try catch语句也是抓捕不到异常的。
public class FloatTest {
private float dividend = 0;
private float divisor = 0;
public float floatDivision(float dividend,float divisor){
float result = 0;
//在这里进行try catch是徒劳的
result = dividend/divisor;
return result;
}
public float getDividend() {
return dividend;
}
public void setDividend(float dividend) {
this.dividend = dividend;
}
public float getDivisor() {
return divisor;
}
public void setDivisor(float divisor) {
this.divisor = divisor;
}
public static void main(String [] args){
System.out.println(new FloatTest().floatDivision(new FloatTest().getDividend(),new FloatTest().getDivisor()));
}
}
//:~输出结果:NaN
另:
表达式 | 结果 |
Math.sqrt(-1.0) | -> NaN |
0.0 / 0.0 | -> NaN |
1.0 / 0.0 | -> 无穷大 |
-1.0 / 0.0 | -> 负无穷大 |
NaN + 1.0 | -> NaN |
无穷大 + 1.0 | -> 无穷大 |
无穷大 + 无穷大 | -> 无穷大 |
NaN > 1.0 | -> false |
NaN == 1.0 | -> false |
NaN < 1.0 | -> false |
NaN == NaN | -> false |
0.0 == -0.01 | -> true |