首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >Python 的 0.1 + 0.2 为什么不等于 0.3?拆开 IEEE 754 与那串死循环小数

Python 的 0.1 + 0.2 为什么不等于 0.3?拆开 IEEE 754 与那串死循环小数

作者头像
小小张说故事
发布于 2026-11-03 21:06:58
发布于 2026-11-03 21:06:58
120
举报
概述
0.1+0.2 不等于 0.3 不是 Python 的 bug:二进制装不下 0.1 这个无限循环小数,52 位尾数只能截断。本文用 float.hex、Decimal、100 万次累加实测,讲清误差怎么攒到 1.33e-6,以及 isclose / Decimal / Fraction 三种正确解法

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 一、0.1 在内存里根本不是 0.1
  • 二、误差会累积,而且藏得很深
  • 三、round 也不是你以为的那个 round
  • 四、怎么办:三种正确的姿势
  • 五、一句话记住
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档