按照这个规定,单精度浮点数(float)这个数据类型所占内存大小为4个字节,也就是32位,所以单精度浮点数也叫32位浮点数,它在内存或硬盘中要占用32个比特。
单精度浮点数的尾数部分用23位存储,加上默认的小数点前的1位1,2(23+1) = 16777216。
因为 107 < 16777216 < 108,所以说单精度浮点数的有效位数是7位
double
在32位系统上通常是8个字节(64位)
- 1位符号位
- 11位指数位
- 52位尾数位(有效位数)
默认情况下使用的格式选项,根据数值的大小自动选择科学计数法或固定小数点表示法。
总结来说,较大的数据类型向较小的数据类型转换可能会导致精度丢失或数据溢出,因为较小的数据类型无法完全表示较大数据类型的所有值。
而较小的数据类型向较大的数据类型转换通常是安全的,因为较大的数据类型可以容纳较小数据类型的所有可能值,不会丢失精度或发生数据溢出。