godKnoows 2024-01-05 14:06 采纳率: 75%
浏览 11
已结题

Python浮点数计算的精度问题如何处理


25420785.695256-11700000-11680000-2043300 = -2514.304744001478

Python浮点数计算的精度问题如何处理?示例如上!
本应是-2515.695256的值,结果只有-2514.304744001478,相差了1.3905119985220153 !
这差的也太多了。有没比较好的解决方法呀?

  • 写回答

3条回答 默认 最新

  • godKnoows 2024-02-23 14:04
    关注

    还是转成整数计算比较放便~

    def Sub(a, b):
        a, b = float(a), float(b)
        n = int(max([len(str(a).split(".")[-1]), len(str(b).split(".")[-1])]))
        print(a,b,n)
        return (a*10**n - b*10**n)/10**n
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

问题事件

  • 系统已结题 3月2日
  • 已采纳回答 2月23日
  • 修改了问题 1月5日
  • 创建了问题 1月5日