Category 职业解析

Python | Decimal | 小数计算误差(浮点数计算精度丢失)

文章目录

Python | Decimal | 小数计算误差(浮点数计算精度丢失)简介问题举例解决方案

简介

编程语言中,浮点数(小数)四则运算总会出现一些与预期不符的情况,究其原因是因为计算机以二进制方式存储数据,对于小数的运算有天然的缺陷,计算机只能以极大限度的进行近似取值,于是精度问题就出现了。Python中,小数加减法出现的精度问题非常常见,一般使用decimal模块进行处理,因为decimal.Decimal是基于字符串进行处理的,所以在使用时一定注意前期转换为字符串,后期转换会对应的浮点类型。

问题举例

sum_amount1 = 245.6+333.3+123.3

sum_amount2 = sum([245.6+333.3+123.3])

解决方案

from decimal import Decimal

sum_amount1 = float(Decimal(245.6) + Decimal(333.3) + Decimal(123.3))

sum_amount2 = float(sum(map(Decimal, [245.6, 333.3, 123.3])))

🎉如果对你有所帮助,可以点赞、关注、收藏起来,不然下次就找不到了🎉

【点赞】⭐️⭐️⭐️⭐️⭐️ 【关注】⭐️⭐️⭐️⭐️⭐️ 【收藏】⭐️⭐️⭐️⭐️⭐️

Thanks for watching. –Kenny

Copyright © 2088 即时享福游戏特区 - 新服开荒福利基地 All Rights Reserved.
友情链接
top