java语言中,float类型数字在计算机中用4个字节(32位)来存储。double类型占用8个字节(64位)。 从存储结构和算法上来讲,double和float是一样的,采用的科学记数法表示。例如123.456可以表示成1.23456×10^2。

所以存储方式如下图

 

Java中浮点数据类型存储及精度

由三总分组成 :

  1. 符号位(最高位):表示正、负数。
  2. 指数部分:表示以2为底数的幂次数。
  3. 有效位:表示有效数字。

由上图可知float与double不一样的地方有:

  1. float是32位的,double是64位的,
  2. Float幂指数8位,double是11位,所以double能存储的范围更大。
  3. Floate有效位23位,而double是52位,所以double的精度更高

 

案例:

 

Java中浮点数据类型存储及精度

相关文章: