#今日分享 @DOU+小助手 你有没有遇到过这种离谱的情况? 明明 0.1 + 0.2 应该等于 0.3,结果打印出来居然是: 0.30000000000000004?! 是不是一瞬间怀疑人生:“我数学没学错啊,这电脑是不是有毛病?” 其实不是你出问题,也不是电脑出bug,而是——浮点数本来就不靠谱。 为什么会这样?我给你打个比方👇 浮点数在电脑里就像“用硬币凑零钱”。 比如你要凑 0.1 元,但你手里没有1角的硬币,只有一堆奇怪的面值(比如 0.03、0.07),你拼命凑,也凑不到刚好 0.1。 电脑处理小数时,其实就是用二进制“硬币”来拼凑我们常见的小数,但很多小数(二进制下)根本没法精确表示,只能无限接近,所以就出现了“误差”。 实用小技巧来啦! ✅ 如果你在写代码,比如 Java 或 Python,判断两个浮点数是否相等,千万别用 ==。 ✔️ 正确姿势是: 用“误差范围”来判断,比如 Math.abs(a - b) < 0.00001 这就像是我们说两个人身高差不多,不用精确到0.000001厘米那么夸张~ 总结一下: 浮点数 ≠ 精确数,拿来做科学计算、工程模拟没问题,但涉及金额、精准对比、判等时要格外小心! 看完这篇,你是不是也觉得编程像生活,一不小心就“精度失控”🤣 你还遇到过哪些看起来“匪夷所思”的编程现象?欢迎评论区一起吐槽交流! #java开发 #后端开发 #程序员日常 #编程知识
00:00 / 01:40
连播
清屏
智能
倍速
点赞11
00:00 / 27:48
连播
清屏
智能
倍速
点赞6
00:00 / 03:52
连播
清屏
智能
倍速
点赞16
00:00 / 07:07
连播
清屏
智能
倍速
点赞1
00:00 / 00:55
连播
清屏
智能
倍速
点赞66
00:00 / 02:37
连播
清屏
智能
倍速
点赞31
00:00 / 03:08
连播
清屏
智能
倍速
点赞2
00:00 / 03:30
连播
清屏
智能
倍速
点赞79
00:00 / 03:40
连播
清屏
智能
倍速
点赞9
00:00 / 01:41
连播
清屏
智能
倍速
点赞12
00:00 / 04:44
连播
清屏
智能
倍速
点赞4
00:00 / 01:05
连播
清屏
智能
倍速
点赞8