vb中单精度与双精度的区别

vb中单精度与双精度的区别,第1张

精度占4个字节,其值是个近似值

双精度占8个字节,其值是个肯定值

实型数值(single

double)

单精度(Single)和双精度(Double)型数值即为浮点数值,它表示的是带小数的实数。单精度型能精确到七位,而双精度能精确到15位。用户在选用这些数据类型时,要注意变量所取值的范围。并且数值为整数时,为了运算速度,不用把变量硬定义为浮点型。对于大的浮点数,可用D,E格式输入输出。

单精度, float ,存储空间为4 个字节;

双精度,double,存储空间为 8 个字节;

这是它们之间最本质的区别。

由于存储空间不同,它们所能表示的数值范围也就不同(能准确表示的数值的位数不同)。

IEEE754标准

单精度(32位)浮点数的结构:

名称 长度 比特位置

符号位 Sign (S) : 1bit (b31)

指数部分Exponent (E) : 8bit (b30-b23)

尾数部分Mantissa (M) : 23bit (b22-b0)

其中的指数部分(E)采用的偏置码(biased)的形式来表示正负指数,若E<127则为负的指数,否则为非负的指数。

另外尾数部分M存储的是当把一个浮点数规范化表示后的1zozooz(二进制的)形式的zozooz的部分的比特串,共23位

求值方法: (-1)^S(1M)2^(E-127)

///////////////////////////////////////////////

双精度(64位)浮点数的结构与单精度相仿

名称 长度 比特位置

符号位 Sign (S) : 1bit (b63)

指数部分Exponent (E) : 11bit (b62-b52)

尾数部分Mantissa (M) : 52bit (b51-b0)

双精度的指数部分(E)采用的偏置码为1023

求值方法:(-1)^S(1M)2^(E-1023)

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

1、所占的内存不同

单精度浮点数占用4个字节(32位)存储空间来存储一个浮点数,包括符号位1位,阶码8位,尾数23位。

而双精度浮点数使用 8个字节(64位)存储空间来存储一个浮点数,包括符号位1位,阶码11位,尾数52位。

2、所存的数值范围不同

单精度浮点数的数值范围为-34E38~34E38,而双精度浮点数可以表示的数字的绝对值范围大约是:-223E308 ~ 179E308。E表示10的多少次方,如34E38指的是34乘以10的38次方。

3、十进制下的位数不同

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

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

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

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

其实就是有效位数不一样。

浮点型变量分为单精度(float)、双精度(double)和长双精度(long double)3类。在Turbo C 中:

比特(位)数 有效数字

float 32 6-7

double 64 15-16

long double 128 18-19

ANSI C 并未具体规定每种类型数据的长度、精度、数值范围,有的系统将double所增加的32位全用于存放小数部分,这样可以增加数值的有效范围,减少舍入误差。有的系统则将所增加的位(bit)一部分存放指数部分,这样可以扩大数值范围

单精度实型 float 占4个字节

能保证6位有效数字,取值范围为-3410的-38次方至3410的38次方。

双精度实型 double 占8个字节

能保证15位有效数字,取值范围为-1710的-308次方至1710的308次方

单精度浮点数是用来表示带有小数部分的实数,一般用于科学计算。

占用4个字节(32位)存储空间,包括符号位1位,阶码8位,尾数23位。其数值范围为-34E38~34E38,单精度浮点数最多有7位十进制有效数字,单精度浮点数的指数用“E”或“e”表示。

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

浮点数的意义:

浮点数是属于有理数中某特定子集的数的数字表示,在计算机中用以近似表示任意某个实数。具体的说,这个实数由一个整数或定点数(即尾数)乘以某个基数(计算机中通常是2)的整数次幂得到,这种表示方法类似于基数为10的科学计数法。

补码系统的0就只有一个表示方式,这点和反码系统不同(在反码系统中,0有二种表示方式),因此在判断数字是否为0时,只要比较一次即可。

右侧的表是一些8-bit补码系统的整数。它的可表示的范围包括-128到127,总共256(=2)个整数。

一、指代不同

1、单精度:是指计算机表达实数近似值的一种方式。

2、双精度:此数据类型与单精度数据类型(float)相似,但精确度比float高。

二、范围不同

1、单精度:范围在负数的时候是从 -3402823E38 到 -1401298E-45,而在正数的时候是从 1401298E-45 到 3402823E38 。

2、双精度:双精度型占8 个字节(64位)内存空间,其数值范围为-179769313486232E308 到179769313486232E308。

三、特点不同

1、单精度:应用广泛,而一些低成本的单片机系统中不具备数学运算的协处理器硬件,因而在在不同系统中,根据硬件特性对浮点数的软件实现进行了相应调整和简化。

2、双精度:同数值型比,它能提供更高的数值精度,采用固定存储长度的浮点数形式,每个双精度浮点型数据占8个字节。与数值型数据不同,它的小数点位置是由输入的数据值来决定的,并且只能用于表中的字段。

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

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

以上就是关于vb中单精度与双精度的区别全部的内容,包括:vb中单精度与双精度的区别、单精度和双精度浮点数有什么区别、单精度和双精度有什么不同等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:聚客百科

原文地址: https://juke.outofmemory.cn/life/3645056.html

()
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存