在c语言中,单精度有效数字和有效数位2
发布网友
发布时间:2023-10-20 01:38
我来回答
共4个回答
热心网友
时间:2024-12-08 09:54
有效数字位数是小数点以后的数字位数,而电脑输出的数字位数决定于定义变量的模式,并一般采用“四舍五入”的方法。
如
int i;
printf("Enter a value for i...\n");
scanf("%d", &i);
键盘输入0.333,储存到变量i里的数是0(约掉了)
如果改成:
double i;
那就会储存0.333000
在输出数值的时候可以先设定有效数值位数:
double i;
printf("Enter a value for i...\n");
scanf("%d", &i);
printf("\ni = %.4lf", i);
在输出的时候在电脑上会输出“i = 0.3330”
.在处理过程中不会当做有效数字位数来处理。
有效数字位数还可以通过常量来设定,在此不再赘述。
希望对你有用!
热心网友
时间:2024-12-08 09:54
第一问,精确位只有7位,7位以后的都是估计位;第二问,一个数与远大于其本身的数相加,相当于没加,结果是大数,大数的显示结果也只保留7位有效数字
热心网友
时间:2024-12-08 09:55
详细请查看IEE754
单精度,转换大概规则是从0到31位 最高位表示正负 第30-23位 这8位表示阶码 后22位表示数据。因此你要把他转化为IEEE754格式才能够看出来。能表示的最小精度为2的-23次方,结果是0.00000011920928955078125。但实际上做不到的,数据由于阶码的存在,实际表达精度会下降
热心网友
时间:2024-12-08 09:55
你用的什么编译器什么环境啊?我在VS2010下的测试结果和你不一样啊。