www.ypnh.net > 单精度和双精度怎么用?怎么区别?

单精度和双精度怎么用?怎么区别?

单精度和双精度都是数据类型,1.23可以是单精度,也可以是双精度例如Dim a As SingleDim b As Doublea = 1.23b = 1.23a是单精度变量,b是双精度变量

双精度比单精度表示的数的范围更大,可以表示的小数位数越多. 双精度比单精度所需要的存储空间更大. 其它都一样的.

C中没有单精度的说法,一般就叫浮点型float.双精度是double,这两个的区别是在WIN32和LINUX下,float类型占4字节,double类型占8字节,因为double占8字节,自然双精度的有效数据位比float类型多,更精确

在C语言中单精度类型称为浮点类型(float),顾名思义是通过浮动小数点来实现数据的存储.它所占的内存空间为4字节(32位),可以表示±3.4*1038范围内的数值,在IEEE 754标准中的表示范围可达到7位精度. 双精度数据类型(double)与float 数据类型相似,但精确度提高到16位,而且占的内存空间为8字节(64位),其数值范围为1.7E-308~1.7E+308.例: 假设单精度用4位数记录一个变量,双精度就是用两个单精度也就是8位来记录一个变量.比如0.11111111,单精度下就只能记录0.1111,双精度就能记录到0.11111111.

单精度 占四个字节存储空间 能表示的有效数位为7位双精度 占八个字节存储空间 能表示的有效数位为16位最好定义符点数时,都采用double类型.因为小数在计算机中存储的多数为近似值,虽然符点数的表示方法(IEEE754标准)可以使得四字节或八字节表示很大的数据,但是,由于有的小数不能完全转换成纯粹相等的二进制数,所以,计算机只能保存最接近的其值的二进制小数.如:0.9 d= 0.1110011001100. B 按二进制再反算回来可能就是0.89999.了演算方法:0.9*2=1.80.8*2=1.60.6*2=1.20.2*2=0.40.4*2=0.8.

简单地说,就是存贮(或者说表示)数值的二进制位数有区别.如果单精度用16位二进制位存贮,那么双精度会用32位二进制位存贮;如果单精度用32位二进制位存贮,那么双精度会用64位二进制位存贮.因此,单双一个相对的概念.

它们都是浮点数,区别在于单精度在内存中占用4个字节而双精度占用8个字节,所以双精度无论是在数量级上还是在精确度上都要好于单精度,因为它可以存储的数字更多.简单来说就是双精度可以表示单精度表示不了的更大的数,也可以精确到单精度表示不了的小数点后更多位.

单精度小数点后面共能精确到7位小数.双精度可精确到15位小数.它们都属于浮点数.双精度浮点所表示的数字范围比单精度大得多.单精度和双精度在计算机中的格式虽然一样,但由于位数不同,数值也发生了类型的转换.这也是二者的区别.

单精度和双精度数值类型最早出现在C语言中(比较通用的语言里面),在C语言中单精度类型称为浮点类型(Float),顾名思义是通过浮动小数点来实现数据的存储.这两个数据类型最早是为了科学计算而产生的,他能够给科学计算提供足够

单精度(float)实数在内存中占32bit 有效数字为6~7位 双精度(double)实数占内存单元为64bit 有效数字为15~16位

网站地图

All rights reserved Powered by www.ypnh.net

copyright ©right 2010-2021。
www.ypnh.net内容来自网络,如有侵犯请联系客服。zhit325@qq.com