lyhk.net
当前位置:首页 >> 为什么要单精度和双精度 >>

为什么要单精度和双精度

单精度 占四个字节存储空间 能表示的有效数位为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.

单精度数,是指计算机表达实数近似值的一种方式.VB中,Single(单精度浮点型)变量存储为 IEEE 32 位(4 个字节)浮点数值的形式,它的范围在负数的时候是从 -3.402823E38 到 -1.401298E-45,而在正数的时候是从 1.401298E-45 到 3.402823E38 .双精度浮点数(Double)用来表示带有小数部分的实数,一般用于科学计算,用8个字节(64位)存储空间,其数值范围为1.7E-308~1.7E+308,双精度浮点数最多有15或16位十进制有效数字,双精度浮点数的指数用“D”或“d”表示,如double i= 0d;

单精度float和双精度double都属浮点数一个单精度浮点数占4个字节(32位)一个双精度浮点数占8个字节(64位)1、所以双精度浮点数所能表示的数字范围比单精度大得多,编写时应注意到自己要用到的数字是否超出了单精度所能表示的范围

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

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

单精度就是float类型,是4个字节的,因此精度没有那么高 双精度就是double类型,是8个字节的,可以表示的数字当然就更多,小数点后面的精度也越高 float f; // 是4个字节的单精度变量 double d; // 是8个字节的双精度变量

1、单精度和双精度都指浮点数,就是带小数点的数2、单精度数的有效位数比较少,7位左右,双精度的在几十位.3、单精度定义是用float 4、双精度定义是用double 比如:#include <math.h> main(){ float pi_f = M_PI; double pi_d = M_PI; printf("%E,",pi_f); printf("%E",pi_d); }

单精度和双精度都属浮点数,一个单精度浮点数占4个字节(32位),一个双精度浮点数占8个字节(64位),所以双精度浮点数所能表示的数字范围比单精度大得多,编写时应注意到自己要用到的数字是否超出了单精度所能表示的范围,还有很重要一点:单精度和双精度在计算机中的表示格式虽一样,但由于位数不同,应注意数值的传递是否发生了类型的转换,否则很容易出现问题.

要看你的输出语句是怎么写的.你可以给定输出的位数.例如:双精度 %30.15lf -- 场宽30,小数点下15位.例如:单精度 %15.7f -- 场宽15,小数点下7位.

单精度和双来精度指的是存储小数的准确程度,不同的语言使用不同的存储空间给单精度和双精度.怎么选择:你可以搜索你使用的语言的单精度和双精度变量的表示范围,如果你要存储的源目标值无法用单精度存储(也就是说小数点后面的数字比较多的情况),就要用双精度存储百.这个和存储大数的原理是一样的,比如C语言的unsigned char能存储0-255,unsigned int能存储0-65535,如果你要存储的数字不会超过255,那就可以选择unsigned char类型,如果不超过65535就可以选择unsigned int类型.具体的变量类型选择还是要看你度使用的编程语言而定.

网站首页 | 网站地图
All rights reserved Powered by www.lyhk.net
copyright ©right 2010-2021。
内容来自网络,如有侵犯请联系客服。zhit325@qq.com