当前位置: 首页> 科技> IT业 > C语言典型例题19

C语言典型例题19

时间:2025/8/13 15:14:58来源:https://blog.csdn.net/2302_77517102/article/details/140805419 浏览次数:0次

《C程序设计教程(第四版)——谭浩强》


例题2.7 检查浮点型数据的舍去误差

C语言知识:

浮点数在C语言用有两个类型,有float和double类型,其中double类型的数据精度更高


解题思路:

可以将一个double类型的数据和float类型的数据输入,观察他们的输出情况,从而判断他们的舍去误差

代码:

//《C程序设计教程(第四版)——谭浩强》
//例题2.7 检查浮点型数据的舍去误差//C语言知识:浮点数在C语言用有两个类型,有float和double类型,其中double类型的数据精度更高
//解题思路:可以将一个double类型的数据和float类型的数据输入,观察他们的输出情况,从而判断他们的舍去误差#include <stdio.h>
int main()
{float a;double b;printf("请输入一个浮点数a,用于判断float类型的误差:\n");scanf("%f",&a);printf("请输入一个浮点数b,用于判断double类型的误差:\n");scanf("%lf",&b);//读取 double 类型的输入(注意 %lf)printf("float类型的数据a的输出结果为:\n%f\n",a);printf("double类型的数据b的输出结果为:\n%lf\n",b);return 0;
}

运行过程:

代码运行过程中遇到的问题:

1.scanf格式化符号:在读取double类型的变量时,您使用了%f ,这是不正确的,应该使用 %lf。
2.输出格式:虽然%f在 printf 中是正确的,但通常打印 double 类型的变量时应该使用%lf来强调其类型。
3.浮点数精度:您可能想要展示浮点数的精度误差,而仅仅打印这些数字可能不足以体现。

// 额外:演示浮点数的误差
printf("\n浮点数在计算机内部的存储及其误差示例:\n");
printf("a + 1.0f = %f\n", a + 1.0f);
printf("b + 1.0 = %lf\n", b + 1.0);

4.单精度浮点数变量,只能提供6~7位有效数字,第7位之后的数字不起作用,后面的几位被忽略了。

5.C编译系统把所有浮点数常量都按照双精度处理,分配8字节,这是为了在运算时保持较高的精度。如果不想把浮点型常量按照双精度处理,可以在数值后面加字母f或者F,这样编译系统就会把他们当成单精度浮点数处理,分配4字节。这样,数值范围和有效位数都减小了。

关键字:C语言典型例题19

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: