怎么在python中执行精确的小数计算

  介绍

怎么在python中执行精确的小数计算吗?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

在进行浮点数计算时它们无法精确表达出所有的十进制小数位。

a =4.1   b  5.329=,   打印(a + b)   ,   9.428999999999998

这些误差实际上是底层CPU的浮点运算单元和IEEE754浮点数算数标准的一种“特性”.python的浮点数类型保存的数据采用的是原始表示形式,因此使用浮动实例时就不能避免这样的误差。

<强>我们可以使用十进制模块避免这种操作(如果不介意牺牲下性能):

得到decimal  import 小数   a =,小数(& # 39;4.1 & # 39;)   b =,小数(& # 39;5.329 & # 39;)   打印(a + b)   ,   9.429

注意十进制的参数必须是字符串,不能是浮点型,否则误差依旧存在。

十进制模块的主要功能是允许控制计算过程中的各个方面,包括数字的尾数和四舍五入。

得到decimal  import 小数   得到decimal  import  localcontext   时间=a 小数(4.1)   时间=b 小数(5.329)   打印(a/b)   打印(& # 39;================& # 39;)   with  localcontext (), as  ctx:   时间=ctx.prec 才能;3   打印(a/b)才能   ,   0.7693751172827922400071261708================0.769

getcontext也可以实现和localcontext一样的功能

得到decimal  import 小数,getcontext   时间=a 小数(4.1)   时间=b 小数(5.329)   getcontext () .prec =3   打印(a/b)   ,   0.769

误差我们不能完全消除,我们只能尽力优化算法,使得误差尽可能小。在大数和小数相加时要格外注意。

nums =, (3.21 e + 18,, 1,, -3.21 e + 18]   print (sum (num))   打印(& # 39;=========================& # 39;)   import 数学   时间=res  math.fsum (num)   打印(res)   ,   0.0=========================1.0 python的数据类型有哪些吗?

python的数据类型:1。数字类型,包括int(整型),长(长整型)和浮子(浮点型)。2。字符串,分别是str类型和unicode类型。3。布尔型,Python布尔类型也是用于逻辑运算,有两个值:True(真)和虚假的(假)。4。列表,列表是Python中使用最频繁的数据类型,集合中可以放任何数据类型。5。元组,元组用“()”标识,内部元素用逗号隔开。6。字,字典典是一种键值对的集合。7。集合,集合是一个无序的,不重复的数据组合。

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

怎么在python中执行精确的小数计算