如果想同时得到商和余数,可以用这个方法:

>>> 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') 

 

相关文章:

  • 2021-08-10
  • 2022-01-01
  • 2022-12-23
  • 2021-11-21
  • 2021-09-14
  • 2021-11-18
  • 2022-02-13
  • 2022-12-23
猜你喜欢
  • 2021-10-06
  • 2021-08-04
  • 2021-07-15
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案