首页 生活常识

单精度和双精度区别(单精度和双精度浮点数)

时间:2024-10-27 13:45:09  作者:聪明的程序员小苏

单精度和双精度是我们在 mysql 中定义数据时候的两个常见类型,那么单精度和双精度数据有什么区别,我们今天就来研究下。

单精度

首先单精度和双精度都是用来表示数字的。单精度用 float 来表示。一个单精度的数字的大小占 4 个 bytes。中文名称叫字节。是计算机技术用于计量存储容量的一种计量单位。

一个字节存储 8 位无符号数。存储的数值范围为0-255。

一个字节需要 8 位的内存空间储存。

单精度这边要 4 个字节,也就是 32 位来表示的数字。就非常的大了。

这里不光可以表示正数,也可以表示负数。

表示形式为 1 位符号位,8 位指数,这个指数位有些地方称为阶码,都是一个意思。23 位小数,这里有的地方也称为尾数 23 位,也是一个意思。

单精度可以表示的数值范围为-3.4E38~3.4E38。 这里 E 指的是 10 的多少次方,所以单精度能表示的数字已经非常大了。

比如 2.4E38 值得是 3.4 乘以 10 的 38 次方。

双精度

理解了单精度,双精度就好理解了。都是对应的。

双精度用 double 来表示。所谓双精度就是它一个数字所占用的存储空间是单精度的 2 倍。也就是用 8 个字节,64 位的存储空间来存储一个浮点数。

双精度有 符号位 1 个,指数位 11 位,小数位 52 位。

表示的数字范围大约是-2.23E 308 ~ 1.79E308.

十进制下的位数不同

单精度浮点数最多有 7 位十进制有效数字,如果某个数字有效数字位数超过 7 位,当把它定义位单精度变量时,超出的部分会自动四舍五入。

双精度浮点数可以表示十进制的 15 或者 16 位有效数字,超出的部分也会自动四舍五入。

相关文章