首页/新闻资讯/正文详情

30条初学C语言踩过的坑(上):被浮点数精度折磨到怀疑人生

发布时间:2026/11/15 6:45:09 来源:云帆数科 栏目:资讯中心
30条初学C语言踩过的坑(上):被浮点数精度折磨到怀疑人生
最近翻电脑旧文件翻出了我当年初学C语言时亲手记的老笔记。全是当年没人带、没人教纯靠自己写代码报错、熬夜调试一点点踩坑总结出来的血泪经验。课本只会讲标准语法这些藏在实操里的隐形坑老师基本不会细讲。但初学写代码时80%的诡异bug、莫名其妙的报错全都出自这些细节。下面这10条最经典的初学翻车笔记每条都附带我当年真实踩坑经历 可直接运行的演示代码。正在学C的新手认真看完能少走半年弯路。1. 浮点数精度丢失写记账程序金额永远差0.000001初学练手写小计费程序时我一直纳闷为什么简单的小数相加结果永远差一点点后来才懂核心原理很多十进制小数转二进制是无限循环小数电脑存不下只能截断保存天然带误差。错误示范新手必写#include int main(void) { float money 0.1f; if (money 0.1f) { printf(相等\n); } return 0; } // 相等判断永远不会执行最大误区浮点数绝对不能用判断相等。正确写法误差比对#include #include int main(void) { float a 0.1f; float b 0.1f; if (fabs(a - b) 1e-6) { printf(数值相等\n); } return 0; }2. long long不加LL后缀大数悄悄溢出全错刚学long long的时候我完全不知道数字常量默认是int。数字稍微大一点不加LL直接溢出截断算出来的结果完全离谱。// 错误写法大数默认int溢出出错 long long num1 9223372036854775807; // 正确写法 long long num2 9223372036854775807LL;3. long long不初始化变量忽对忽错玄学现场初学写代码特别懒变量随手定义不初始化。当时经常遇到一个玄学问题代码没变有时候结果对、有时候错。后来才知道局部变量不初始化里面是栈内存遗留的随机乱码运算自然飘忽不定。long long data1; // 翻车随机脏数据 long long data2 0;// 规范定义必清零4. 除数为0随手一写程序直接闪退初学写公式经常不小心出现变量为0的情况程序直接闪退。C语言除0是硬性崩溃红线不会警告、直接终止。int res 10 / 0; // 经典翻车5. 返回值-1用char接收类型坑导致莫名报错初学调用库函数看到返回-1代表失败随手用char去接收。实际char存负数极易出异常符号错乱。新手统一记住接收函数返回值全部用int。char ret1 -1; // 错误写法 int ret2 -1; // 稳妥写法6. unsigned减法溢出倒计时突然变超大数这是我初学觉得最玄学的bug。写倒计时功能用了unsigned变量减到不够减的时候不会变负数直接溢出成超级大数判断逻辑全部失效。#include int main(void) { unsigned int num 2; num num - 5; // 不是-3是超大正数 printf(%u\n, num); return 0; }7. float/double精度有限高精度计算全白写float只有6~7位有效数字double只有15~16位有效数字。数值一旦过长后面全是虚假乱数精密计算绝对不能用float。8. char越界翻转赋值128正数变负数char范围-128~127强行赋值128会循环翻转成负数判断条件直接错乱。9. i与i混用循环逻辑悄悄乱i先取值后自增i先自增后取值。嵌套代码里混用会出现肉眼完全看不出来的逻辑bug。10. 浮点数判等必须用误差区间新手一定要养成习惯浮点比较永远这样写if (fabs(a - b) 1e-6)这10条里面我最惨的是unsigned减法溢出那一回倒计时变超大数查了一晚上没睡着。你初学C语言时被浮点数精度、unsigned溢出、还是char越界坑得最惨评论区告诉我你踩过哪个——1浮点数2unsigned3char我看看哪个是“初学全民公敌”

相关推荐

C++字符串深度解析:从内存模型到性能优化实战
C++字符串深度解析:从内存模型到性能优化实战

1. 项目概述&#xff1a;为什么C字符串值得深挖&#xff1f;如果你写过C&#xff0c;肯定和字符串打过交道。std::string用起来似乎很简单&#xff0c;cin >> str输入&#xff0c;cout << str输出&#xff0c;str.find()查找&#xff0c;感觉和Java、Python里的字符… · 2026/11/2 0:19:20

深入解析DMA块传输、地址对齐与通道优先级机制
深入解析DMA块传输、地址对齐与通道优先级机制

1. 从CPU的“搬运工”到系统性能的“加速器”&#xff1a;DMA核心价值再认识在嵌入式开发领域&#xff0c;尤其是面对TI CC35xx这类集成了Wi-Fi和蓝牙的复杂无线MCU时&#xff0c;我们常常会为一个问题头疼&#xff1a;当CPU忙于处理复杂的网络协议栈、加密算法或应用逻辑时&am… · 2026/10/21 6:38:52

Linux C实战案例全集:从系统编程到高并发服务器开发
Linux C实战案例全集:从系统编程到高并发服务器开发

1. 项目概述&#xff1a;一份来自一线工程师的实战宝库最近在整理自己的技术资料库&#xff0c;翻出了不少压箱底的“老古董”——那些年为了解决问题、验证想法、完成项目而写下的Linux C代码。从简单的文件操作到复杂的网络通信&#xff0c;从基础的数据结构到精巧的系统工具… · 2026/10/1 6:00:52

北京北科学校电工证官方回应:急需特种作业证才能上岗找工作
北京北科学校电工证官方回应:急需特种作业证才能上岗找工作

北京北科学校电工证官方回应:急需特种作业证才能上岗找工作 你是不是也像很多人一样,想找个稳定的工作,但发现很多岗位都要求有特种作业证?特别是 北京北科学校电工证… · 2026/11/15 6:44:43

咸阳市免费培训电工证怎么考?官方报名入口和实操考试技巧全公开
咸阳市免费培训电工证怎么考?官方报名入口和实操考试技巧全公开

咸阳市免费培训电工证怎么考?官方报名入口和实操考试技巧全公开 实操考试心里没底怕挂科,这几乎是所有想考电工证的学员共同的焦虑。尤其在咸阳市,很多学员都是通过“咸阳市免费培训电工证”项目入门,但真正到了考场,面对复杂的操作流程,心里还是会打鼓… · 2026/11/15 6:44:43

宝山区电工证复审在哪考?别被中介坑了
宝山区电工证复审在哪考?别被中介坑了

宝山区电工证复审在哪考?别被中介坑了 你是不是也遇到过这种情况?想做电工证复审,结果一打听,发现报名点太多,真假难辨,生怕被中间人坑钱? 宝山区电工证复审在哪考… · 2026/11/15 6:44:43

版纳哪里可以学电工证 2026河南最新政策怎么影响你
版纳哪里可以学电工证 2026河南最新政策怎么影响你

版纳哪里可以学电工证 2026河南最新政策怎么影响你 之前考的证在外省能不能转过来?这个疑问其实很多人都有,尤其是在跨省工作或生活的人群中。随着 2026河南最新政策… · 2026/11/15 6:44:43

疫情期间电工证过期了怎么报名?学历不高怕报不上名?电工证报考全攻略来了
疫情期间电工证过期了怎么报名?学历不高怕报不上名?电工证报考全攻略来了

疫情期间电工证过期了怎么报名?学历不高怕报不上名?电工证报考全攻略来了 学历不高怕报不上名?疫情期间电工证过期了,很多人担心是不是就没机会再考了?其实不是,只要符合条件, 怎么报名… · 2026/11/15 6:44:43

龙口考低压电工证良心建议,外省证能转过来吗
龙口考低压电工证良心建议,外省证能转过来吗

龙口考低压电工证良心建议,外省证能转过来吗 之前考的证在外省能不能转过来?这是很多从事电工行业的朋友在考虑要不要考 龙口考低压电工证 时最关心的问题之一。其实,答案是肯定的,但需要掌握正确的方式和流程。如果你正在犹豫是否 龙口考低压电工证… · 2026/11/15 6:43:43

长春初级电工证怎么考?通过率揭秘全在这里
长春初级电工证怎么考?通过率揭秘全在这里

长春初级电工证怎么考?通过率揭秘全在这里 之前考的证在外省能不能转过来?这几乎是每个想从事电工工作的人都会问的问题。特别是那些在外地打拼多年、手里握着一张“外地电工证”的人,到了长春想继续干这一行,第一反应就是“我的证能用吗?”。今天我们就… · 2026/11/15 0:00:50

国内电工证报考条件与考试时间
国内电工证报考条件与考试时间

低压电工证怎么考?学历不高也能报名,官方报名入口全在这 你是不是经常听说“电工证是入行门槛”,但又担心自己学历不够、经验不足,根本报不了名?别急,今天就带你从零了解【国内电工证】的报考流程、考试内容,还有怎么在 官方报名入口… · 2026/11/15 0:00:50

电工作业时如何断电?电子证书到底能不能全国通用?
电工作业时如何断电?电子证书到底能不能全国通用?

电工作业时如何断电?电子证书到底能不能全国通用? 实操考试心里没底怕挂科,特别是电工作业时如何断电这一操作,不仅关系到你能不能拿到证书,更关系到以后能不能顺利上岗。很多人觉得这不过就是“断个电”,但其实这里面的门道可不少,稍有不慎就可能出错… · 2026/11/15 0:00:50

长春初级电工证怎么考?通过率揭秘全在这里
长春初级电工证怎么考?通过率揭秘全在这里

长春初级电工证怎么考?通过率揭秘全在这里 之前考的证在外省能不能转过来?这几乎是每个想从事电工工作的人都会问的问题。特别是那些在外地打拼多年、手里握着一张“外地电工证”的人,到了长春想继续干这一行,第一反应就是“我的证能用吗?”。今天我们就… · 2026/11/15 0:00:50

国内电工证报考条件与考试时间
国内电工证报考条件与考试时间

低压电工证怎么考?学历不高也能报名,官方报名入口全在这 你是不是经常听说“电工证是入行门槛”,但又担心自己学历不够、经验不足,根本报不了名?别急,今天就带你从零了解【国内电工证】的报考流程、考试内容,还有怎么在 官方报名入口… · 2026/11/15 0:00:50

电工作业时如何断电?电子证书到底能不能全国通用?
电工作业时如何断电?电子证书到底能不能全国通用?

电工作业时如何断电?电子证书到底能不能全国通用? 实操考试心里没底怕挂科,特别是电工作业时如何断电这一操作,不仅关系到你能不能拿到证书,更关系到以后能不能顺利上岗。很多人觉得这不过就是“断个电”,但其实这里面的门道可不少,稍有不慎就可能出错… · 2026/11/15 0:00:50

双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试
双极步进电机控制实战:DRV8818PWPR与PIC18F86K22驱动调试

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/15 1:51:20

STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析
STM32F207ZG + DRV8818PWPR 步进电机驱动实战解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/15 4:02:19

DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案
DRV8818PWPR+dsPIC30F4013工业级双极步进电机控制方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/11/15 3:02:05

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码