float和double的区别在于:变量类型不同、指数范围不同、表达式指数位不同、占用内存空间不同以及有效位数不同。其中float数据类型用于存储单精度浮点数或双精度浮点数,而double即双精度浮点型使用64位来储存一个浮点数。
float即单精度浮点型,用于存储单精度浮点数或双精度浮点数。浮点数使用 IEEE格式。浮点类型的单精度值具有 4 个字节,包括一个符号位、一个8位二进制指数和一个23位尾数。由于尾数的高顺序位始终为1,因此它不是以数字形式存储的。此表示形式为 float 类型提供了一个大约在 -3.4E+38 ~ 3.4E+38 之间的范围。
而double即双精度浮点型,它是计算机使用的一种资料型别,比起float,double使用 64 位 来储存一个浮点数。 它可以表示十进制的15或16位有效数字,负值取值范围为 -1.7976E+308 到 -4.94065645841246544E-324,正值取值范围为 4.94065645841246544E-324 到 1.797693E+308。
1、变量类型不同
float属于单精度型浮点数据,double属于双精度型浮点数据。
2、指数范围不同
float的指数范围为-127~128,double的指数范围为-1023~1024。
3、表达式指数位不同
float的表达式为1bit(符号位)+8bits(指数位)+23bits(尾数位);double的表达式为1bit(符号位)+ 11bits(指数位)+ 52bits(尾数位)。
4、占用内存空间不同
float占4个字节(32位)内存空间,其数值范围为3.4E-38~3.4E+38;double占8 个字节(64位)内存空间,其数值范围为1.7E-308~1.7E+308。
5、有效位数不同
float只能提供七位有效数字,double可提供16位有效数字。