python浮点数精度
如果想同时得到商和余数,可以用这个方法:
>>> divmod(10,3)
(3, 1)
因为浮点数精度的问题,Python还存在一些计算方面的小问题,例如:
>>> 0.1+0.1+0.1-0.3 5.551115123125783e-17
什么?不是应该等于0吗?Python居然还有这么不为人知的一面?
要解决这个问题,可以导入decimal模块:
>>> from decimal import Decimal >>> Decimal('0.1')+Decimal('0.1')+Decimal('0.1')-Decimal('0.3') Decimal('0.0') >>> Decimal('0.1') / Decimal('0.3') Decimal('0.3333333333333333333333333333') >>> from decimal import getcontext >>> getcontext().prec = 4 #设置全局精度 >>> Decimal('0.1') / Decimal('0.3') Decimal('0.3333')