`
ideage
  • 浏览: 319958 次
社区版块
存档分类
最新评论

让你抓狂的Decimal

 
阅读更多

使用Decimal模块的时候,有些问题会让你抓狂。

 

from decimal import *

dec =  Decimal('0.00000000000000') * Decimal('-0.002000000')
print dec
dec =  Decimal('0.00000000000000') / Decimal('-0.0020000000002')
print dec

结果竟然是

-0E-23
-0.0

 

很显然,我不期待这个结果。只能修改decimal模块了。

 

 

 

在精度不足的情况下,会使用科学记数法:

getcontext().prec = 2
a = Decimal('493.00')
b = Decimal('201.00')
print a - b

 

结果是2.9E+2,也就是290

 

还是默认精度吧。

 

 

 

也可以在进行乘法或者除法时候,转换为float计算,结果再转换为Decimal,不过,写的代码会很变态。

 

 

 

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics