单精度和双精度有啥不同?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单精度和双精度有啥不同?相关的知识,希望对你有一定的参考价值。

单精度浮点数和双精度浮点数有以下区别:

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位有效数字,超出的部分也会自动四舍五入。

参考资料来源:百度百科-单精度浮点数

参考资料来源:百度百科-双精度浮点数

参考技术A

1,单精度,也就是 float ,在 32 位机器上用 4 个字节来存储的;而双精度double是用 8 个字节来存储的,这是他们最本质的区别。 

2,由于存储位不同,他们能表示的数值的范围就不同,也就是能准确表示的数的位数就不同。

3,单精度小数点后面共能精确到7位小数。双精度可精确到15位小数。

扩展资料:

单精度浮点数用4字节存储,双精度浮点数用8字节存储,分为三个部分:符号位、阶和尾数。阶即指数,尾数即有效小数位数。单精度格式阶占8位,尾数占24位,符号位1位,双精度则为11为阶,53位尾数和1位符号位。

细心的人会发现,单双精度各部分所占字节数量比实际存储格式多了一位,的确是这样,事实是,尾数部分包括了一位隐藏位,允许只存储23位就可以表示24位尾数,默认的1位是规格化浮点数的第一位,当规格化一个浮点数时,总是调整它使其值大于等于1而小于2,亦即个位总是为1。

阶以移码的形式存储。对于单精度浮点数,偏移量为127(7FH),而双精度的偏移量为1023(3FFH)。存储浮点数的阶码之前,偏移量要先加到阶码上,浮点数有两个例外。数0.0存储为全零。无限大数的阶码存储为全1,尾数部分全零。符号位指示正无穷或者负无穷。

参考资料:百度百科-单精数

百度百科-双精度浮点数

参考技术B

区别如下:

1、单精度和双精度的字节数不同。前者占4个字节;后者占8个字节。

2、单精度和双精度有效数字位数不同。前者为8位;后者为16位。

3、单精度和双精度表示的数的范围不同。前者的数值范围在-3.40E+38 到 +3.40E+38之间;后者的范围为-1.79E+308到+1.79E+308之间。

4、单精度和双精度处理的速度不同。前者的速度更加的快。


参考技术C 1、单精度,也就是 float ,在 32 位机器上用 4 个字节来存储的;而双精度double是用 8 个字节来存储的,这是他们最本质的区别。 2、由于存储位不同,他们能表示的数值的范围就不同,也就是能准确表示的数的位数就不同。 参考技术D 单精度和双精度都属浮点数,一个单精度浮点数占4个字节(32位),一个双精度浮点数占8个字节(64位),所以双精度浮点数所能表示的数字范围比单精度大得多,编写时应注意到自己要用到的数字是否超出了单精度所能表示的范围,还有很重要一点:单精度和双精度在计算机中的表示格式虽一样,但由于位数不同,应注意数值的传递是否发生了类型的转换,否则很容易出现问题。

单精度和双精度浮点值有啥不同? [复制]

【中文标题】单精度和双精度浮点值有啥不同? [复制]【英文标题】:What's different between a single precision and double precision floating values? [duplicate]单精度和双精度浮点值有什么不同? [复制] 【发布时间】:2020-05-28 12:27:43 【问题描述】:

单精度和双精度浮点值有什么区别?

【问题讨论】:

您是否先尝试了一些搜索? 错误...精度。更具体地说,单精度和双精度分别约为 6 位有效十进制数字与 15 位。 【参考方案1】:

在 C 语言中,double 的精度至少与float 一样高,通常高于float,并且至少具有float 的指数范围,通常高于float

C 标准只要求double 能够表示float 的所有值:“float 类型的值集是double 类型的值集的子集…… ”(C 3028 6.2.5 10)。

在当今典型的常见实现中,float 在IEEE-754 binary32 格式中用 32 位表示,doublebinary64 格式中用 64 位表示> 格式。

【讨论】:

【参考方案2】:

单精度(浮点数)存储在 4 个字节(32 位)中。 双精度(double)以 8 个字节(64 位)存储。

【讨论】:

以上是关于单精度和双精度有啥不同?的主要内容,如果未能解决你的问题,请参考以下文章

单精度与双精度的区别

计算欧几里得距离的python方法的精度有啥不同吗?

高精度固晶机和普通固晶机相比有啥不同?

浮点类型说明浮float,double有啥区别啊

浮点类型说明浮float,double有啥区别啊

IEEE-754浮点标准简介