双精度和单精度区别

如题所述

第1个回答  2024-03-24
所占的内存不同、所存的数值范围不同、十进制下的位数不同。
1、所占的内存不同:单精度浮点数占用4个字节(32位)存储空间来存储一个浮点数,包括符号位1位,阶码8位,尾数23位。而双精度浮点数使用8个字节(64位)存储空间来存储一个浮点数,包括符号位1位,阶码11位,尾数52位。
2、所存的数值范围不同:单精度浮点数的数值范围为-3.4E38~3.4E38,而双精度浮点数可以表示的数字的绝对值范围大约是:-2.23E308~1.79E308。E表示10的多少次方,如3.4E38指的是3.4乘以10的38次方。
3、十进制下的位数不同:单精度浮点数非常多有7位十进制有效数字,如果某个数的有效数字位数超过7位,当把它定义为单精度变量时,超出的部分会自动四舍五入。双精度浮点数可以表示十进制的15或16位有效数字,超出的部分也会自动四舍五入。
单精度数是指计算机表达实数近似值的一种方式。VB中Single(单精度浮点型)变量存储为IEEE32位(4个字节)浮点数值的形式,它的范围在负数的时候是从-3.402823E38到-1.401298E-45,而在正数的时候是从1.401298E-45到3.402823E38。单精度和双精度数值类型较早出现在C语言中(比较通用的语言里面),在C语言中单精度类型称为浮点类型(float),顾名思义是通过浮动小数点来实现数据的存储。这两个数据类型较早是为了科学计算而产生的,他能够给科学计算提供足够高的精度来存储对于精度要求比较高的数值。
相似回答