NaN就是Not a Number,也就是说其不是一个数值,当浮点运算被除数和除数都是0时,商就是一个NaN。Java语言规定,NaN不等于任何值,包括其自身。因为NaN不等于任何值,因此,也就不能使用“==”运算符来判断一个值是否是NaN,而是要使用Float(Double)类的isNaN方法,如果参数为NaN,返回值为true,否则返回值为false。
例:
package deep;
public class Division {
public static void main(String[] args) {
float f = 0f;
float fNaN = f / f;
if (fNaN == Float.NaN) {// 不能用“==”来判断NaN
System.out.println("-----f/f的结果是NaN-----");
}
if (Float.isNaN(fNaN)) {
System.out.println("*****f/f的结果是NaN*****");
}
}
}
运行结果:
*****f/f的结果是NaN*****