浮点型简介
java的浮点类型有两种:float和double。
在一个浮点数后面添加f或者F后缀,指定为float类型,加d或者D后缀表示double类型。
一个float类型的数值占4字节,32位。第1位是符号位,接下来8位表示指数,后面23位表示尾数。
一个double类型的数值占8字节,64位。第一位是符号位,接下来11位表示指数,后面52位表示尾数。
浮点型数表示方法
java语言的浮点数有两种表示方法:
十进制数形式:如5.20。
科学计数法:如5.12e2,即5.12^2
只有浮点型数值才可以用科学计数法形式表示,但是用科学计数法表示一个浮点数不精确,如果需要精确保存一个浮点数可以使用BigDecimal类。
三个特殊的浮点数值
三个特殊的浮点数值:正无穷大、负无穷大和非数,用于表示溢出和出错。
public class floatshu {
public static void main(String[] args) {
// TODO Auto-generated method stub
float a=Float.NEGATIVE_INFINITY;
float b=Float.POSITIVE_INFINITY;
float c=Float.NaN;
double d=Double.NEGATIVE_INFINITY;
double e=Double.POSITIVE_INFINITY;
double f=Double.NaN;
float g=0.0f;
double s=0.0;
System.out.println(g/g);//NaN
System.out.println(s/s);//NaN
System.out.println(g/g==c);//false
System.out.println(c==f);//false,两个非数之间是不相等的
System.out.println(a==d);//true,所有负无穷大都是相等的
System.out.println(b==e);//true,所有正无穷大都是相等的
System.out.println(a);//-Infinity
System.out.println(b);//Infinity
System.out.println(c);//NaN
System.out.println(d);//-Infinity
System.out.println(e);//Infinity
System.out.println(f);//NaN
}
}
运行结果:
正浮点数除以0得到正无穷大,负浮点数除以0得到负无穷大,0.0除以0.0得到非数。如果一个整数除以0,则会抛出一个异常。