Python中计算浮点数的方法
这篇文章主要介绍Python中计算浮点数的方法,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!
1、浮点数的一个普遍的问题是它们不能精确的表示十进制数。
>>>a=4.2>>>b=2.1>>>a+b6.300000000000001>>>(a+b)==6.3False
这是由于底层 CPU 和IEEE 754 标准通过自己的浮点单位去执行算术时的特征。看似有穷的小数, 在计算机的二进制表示里却是无穷的。
一般情况下,这一点点的小误差是允许存在的。如果不能容忍这种误差(比如金融领域),那么就要考虑用一些途径来解决这个问题了。
2、Decimal
使用这个模块不会出现任何小误差。
>>>fromdecimalimportDecimal>>>a=Decimal('4.2')>>>b=Decimal('2.1')>>>a+bDecimal('6.3')>>>print(a+b)6.3>>>(a+b)==Decimal('6.3')True
尽管代码看起来比较奇怪,使用字符串来表示数字,但是 Decimal 支持所有常用的数学运算。 decimal 模块允许你控制计算的每一方面,包括数字位数和四舍五入。在这样做之前,需要创建一个临时上下文环境来改变这种设定:
>>>fromdecimalimportDecimal,localcontext>>>a=Decimal('1.3')>>>b=Decimal('1.7')>>>print(a/b)0.7647058823529411764705882353>>>withlocalcontext()asctx:...ctx.prec=3...print(a/b)...0.765>>>withlocalcontext()asctx:...ctx.prec=50...print(a/b)...0.76470588235294117647058823529411764705882352941176>>>
以上是Python中计算浮点数的方法的所有内容,感谢各位的阅读!希望分享的内容对大家有帮助,更多相关知识,欢迎关注亿速云行业资讯频道!
声明:本站所有文章资源内容,如无特殊说明或标注,均为采集网络资源。如若本站内容侵犯了原著者的合法权益,可联系本站删除。