您的位置:首页 > 编程语言 > Python开发

解决Python中浮点数计算结果不够精确的问题:decimal模块

2017-08-02 22:04 337 查看
Python进行浮点数计算时存在着不够精确的问题。如下图:



其原因是Python在存储浮点数类型的数据时会存储一个近似的小数。解决方法为使用decimal模块。

decimal模块提供了一个数据类型Decimal用于浮点数计算,相比内置的浮点数类型float,Decimal这个类型有助于需要精确十进制表达的场合,或者用户希望计算结果与手算相符的场合。Decimal重现了手工的数学运算,这就确保了二进制浮点数无法精确保有的数据精度。

用一段简单的代码来说明:

from decimal import Decimal

def add(x,y):

    return x+y

num1=Decimal(input())

num2=Decimal(input())

print(add(num1,num2))

其运算结果如下图:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: