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

Python浮点数加法精度控制:如何指定精度并保留更多小数位?

Python浮点数运算精度问题解析

为什么会出现这种精度丢失?

Python默认使用IEEE 754标准的双精度浮点数,这类浮点数的二进制存储机制天生存在精度限制:

  • 双精度浮点数仅有53位有效二进制位,对应约15-17位十进制有效数字。
  • 当两个量级差距极大的数值相加时,较小数的低位有效数字会被较大数的高位覆盖,无法被保留。

回到你的运算:250459325658972.0是一个大整数,它的十进制位数已经接近双精度浮点数的有效数字上限。加上0.4047617913405519时,这个小数的后几位有效数字超出了当前浮点数能承载的精度范围,因此最终结果只能保留到一位小数,剩余部分被舍去。

如何实现自定义精度的运算?

可以使用Python标准库中的decimal模块,它支持自定义运算精度,能精确处理十进制小数:

from decimal import Decimal, getcontext

# 设置足够的运算精度,比如20位有效数字
getcontext().prec = 20
num1 = Decimal('0.4047617913405519')
num2 = Decimal('250459325658972.0')
result = num1 + num2
print(result)  # 输出:250459325658972.4047617913405519

参考资源

  • Python官方文档中decimal模块的详细说明
  • IEEE 754双精度浮点数标准的核心规则(有效位数、存储机制)
  • Python内置float类型的精度限制说明

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 13:50:28