float与double类型的四种特殊的数值
关键字: float, double, 特殊数值
float与double类型可以用来表示四种特殊的数值:正无穷大,负无穷大,零,NaN.
当浮点数的计算结果超出float与double所能表示的范围时,就会出现无穷大的数值.
当浮点数的计算结果小于float与double所能表示的范围时,就会出现零值.java浮点类型有所谓的正零与负零的差别.实际上,正零与负零的运作方式非常相似.最后一个特别的浮点值就是NaN.它代表的是”非数字”.当进行不合法的浮点数运算时,如:0.0/0.0这种情况下,就会出现NaN的结果.
例:
double a = 1.0/0; //正无穷大
double b = -1/0.0; //负无穷大
double c = -1/a; //负零
double d = 1.0/a; //正零
double l = -1/b; //正零
double e = 0.0/0.0; //NaN
double f = a + b; //NaN
boolean g = Double.isNaN(e); //true
boolean h = Double.isNaN(d); //false
double j = a+1; //正无穷大
double k = b-1; //负无穷大
浮点数的无穷大值的运作方式正如你所预期的,对任何无穷大的值做加减法都还是无穷大的值.负零的运作方式和正零的运作方式几乎是相同的.而事实上,运算符”==”会告诉你正零和负零是相同的.有一个方式可以区分正零与负零:当你将1.0除以正零时,你则会得到正无穷大的值.但若你将1.0除以负零时,你则会得到负无穷大的值.最后,因为NaN是一个非数字值,所以运算符”==”告诉我们它无法等于任何其他数字,包括它自己在内.若要检查
Float或double值是否为NaN,你必须使用Float.isNaN()与Double.isNaN();