You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

为何0.1 + 0.2在Python中结果为0.30000000000000004?

为什么0.1 + 0.2不等于0.3?

这不是Python的专属问题,所有遵循IEEE 754双精度浮点数标准的编程语言(比如Java、JavaScript)都会出现这个现象,核心原因是十进制小数的二进制表示限制:

  • 十进制里的0.1和0.2,转换成二进制后是无限循环的小数,就像十进制无法精确表示1/3(0.3333...)一样。比如0.1的二进制是0.0001100110011...(循环节为0011)。
  • 计算机存储浮点数时,只能保留有限位数(双精度是64位),所以这些无限循环的二进制小数会被截断或舍入,产生微小的误差。
  • 当0.1和0.2的近似值相加时,误差累积,最终得到的结果就是0.30000000000000004,而非精确的0.3。

验证代码:

print(0.1 + 0.2)  # 输出:0.30000000000000004

如果需要精确的十进制计算,可以使用Python内置的decimal模块:

from decimal import Decimal
print(Decimal('0.1') + Decimal('0.2'))  # 输出:0.3

内容的提问来源于stack exchange,提问作者mag bit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.02 00:32:31