bycj.net
当前位置:首页 >> C 精度 >>

C 精度

精度主要是指在内存中的存储.比如:int a; int b=5,c=2; a=b/c;printf("a=%d\n",a); 只会输出a=2而不会输出2.5或3.

所谓“精度”就是精确程度,精度分为尺寸精度;共20个等级,从IT01、IT0、IT1-IT18.形状精度;共12个等级,以A、B、C…….位置精度;共12个等级,以A、B、C…….

计算机内部用2进制,我们输入10进制,所以 输入时 10进制 要转换为 2进制,输出时,2进制 要转换为 10进制.浮点型数据 10进制 要转换为 2进制,常常是 “化不净” 的.如同 算术里的 1.0/3.0 = 0.333333333333333333333333333.浮点型

单精度,双精度 的主要区别在于 c语言中 它们用不同的位数来存储数据 这就导致了 它们所能表达的数据范围和精度不同. 双精度可以比单精度,在科学计算中有更加精确的结果,可以精确到更多的小数位.如果你对数据的精确度要求不高,用单,双精度 都无所谓的

C语言中,单精度浮点型为float, 双精度浮点型为double.1. Float为单精度,内存中占4个字节,有效数位是7位(因为有正负,所以不是8位),在我的电脑且VC++6.0平台中默认显示是6位有效数字.2. double为双精度,占8个字节,有效数位

要规定一个精度 eps.严格说 1.4142 不等于 2 的平方根,本身就有误差 0.0001.实数比较 用误差的绝对值 小于一个很小的数.#include <math.h> float a=1.0,b=1.0,c=1.4142; float eps=0.0001; // 例如给 0.0001 if ( (fabs(a*a + b*b - c*c) < eps) ||(fabs(b*b + c*c - a*a) < eps) ||(fabs(c*c + a*a - b*b) < eps) ) printf("It is .\n");

国际标准浮点格式,字节越长精度越高:单精度浮点(float):4个字节长 双精度浮点(dloube):8个字节长,长双精度(long double):10个字节长.根据你C/C++程序的需要,可以定义浮点变量,精度高,占的字节也多.

单精度和双精度最大区别就是结果精确到第几位.单精度是这样的格式,1位符号,8位指数,23位小数.双精度是1位符号,11位指数,52位小数.

单精度浮点型用于存放单精度浮点数,也就是小数.双精度浮点型用于存放双精度浮点型,它的长度要比单精度长.

double c; scanf("%lf",&c); printf("摄氏温度是:%20.17lf\n",c); floate c,scanf("%f",&c); printf("摄氏温度是:%20.17f\n",c); 这两段程序运行时输入10.12345678912345,你可以看出单精度 和 双精度的差别.

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