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

Python中print(5*2*3.14)输出结果异常求助(版本3.10.5)

Python 3.10.5中5*2*3.14计算结果不符合预期的解决办法

这是浮点数的二进制精度限制导致的问题:十进制的3.14无法被二进制浮点数精确存储,计算过程中会累积微小的精度误差,最终输出类似31.400000000000002的结果,而非预期的31.4。

以下是几种可行的解决方法:

  • 使用round()函数对结果四舍五入,保留指定小数位:
    print(round(5*2*3.14, 2))  # 输出31.4
    
  • 借助decimal模块精确控制计算精度,避免浮点数误差:
    from decimal import Decimal, getcontext
    getcontext().prec = 3
    result = Decimal('5') * Decimal('2') * Decimal('3.14')
    print(result)  # 输出31.4
    
  • 通过字符串格式化指定输出的小数位数,让结果符合预期显示:
    # 格式化字符串方式
    print("{:.2f}".format(5*2*3.14))  # 输出31.40
    # f-string方式
    print(f"{5*2*3.14:.2f}")  # 输出31.40
    

内容的提问来源于stack exchange,提问作者Am.Shekari

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.20 10:18:26