浮点型简介

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
	}
}

运行结果:

float 相等 java float类型java_jdk


正浮点数除以0得到正无穷大,负浮点数除以0得到负无穷大,0.0除以0.0得到非数。如果一个整数除以0,则会抛出一个异常。