python e**( - x)溢出错误:(34,'结果太大')

Nit*_*ate 1 python

在python中有一种方法可以将小数部分截断为5或7位数吗?

如果没有,我怎么能避免像e**( - x)这样的浮点数太大?

谢谢

Ste*_*ski 5

捕获OverflowError或使用decimal模块.Python不会假设你对溢出没问题.

>>> 0.0000000000000000000000000000000000000000000000000000000000000001**-30
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OverflowError: (34, 'Result too large')
>>> d = decimal.Decimal(0.0000000000000000000000000000000000000000000000000000000000000001)
>>> d**-30
Decimal('1.000000000000001040827834994E+1920')
Run Code Online (Sandbox Code Playgroud)

  • +1还要解决Python已选择不为您做出假设的问题. (2认同)