视频加载失败

c语言学习错误简记(1)

304 字
2 分钟
c语言学习错误简记(1)
  1. 1c语言学习简记(2)
  2. 2c语言学习错误简记(1)本文

前言#

近期在跟着教材《c程序设计(第五版)》学习c语言,在学习过程中也发现了一些较为“特殊”的错误(指以后大概率还会再犯),特此进行记录。

正文#

以下为示例代码:

#include <stdio.h>
int main(){
float e=0.0;
for(int d=9;d>=0;d--){
e += 0.1;
}
printf("%.10f\n",e);
}

初学者也许多会认为这个代码的打印结果为“1.0000000000”,但实际上最终会打印出“1.0000001192”。

出现这个问题的原因很简单——在c语言中,存储浮点类型数据的方式是“IEEE-754(浮点运算标准)”,其以二进制的形式去存储十进制小数,会不可避免地造成误差。

通常情况下,这种误差并不显著,但会在特定的代码条件下放大导致严重偏差。 目前遇见过的就有由于运用强制格式转换,将浮点型变量截断为整型变量,使得浮点误差被放大的局面。

面对这种情况,建议还是多用整型去处理数据,或者在应用浮点型数据时有意地去控制位数(误差通常出现在小数点后很多位)。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

c语言学习错误简记(1)
https://firefly.cuteleaf.cn/posts/floattrap/
作者
白园Shiroen
发布于
2026-09-16
许可协议
CC BY-NC-SA 4.0

评论区

Profile Image of the Author
白园Shiroen
Face the fear,build the future.
分类
标签
站点统计
文章
4
分类
1
标签
4
总字数
712
运行时长
0 天
最后活动
0 天前
文章目录