Python 小数.InvalidOperation 错误

2024-05-09

当我运行这样的东西时,我总是收到此错误:

from decimal import *
getcontext().prec =30

b=("2/3")

Decimal(b)

Error:

Traceback (most recent call last):
  File "Test.py", line 6, in <module>
    Decimal(b)
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]

另外,为什么我从控制台得到这个结果?

>>> Decimal(2/3)
Decimal('0.66666666666666662965923251249478198587894439697265625')

Thanks


Decimal的初始值设定项无法接受其中包含斜杠的字符串。通俗地说,该字符串必须看起来像一个数字。这张表 https://docs.python.org/3/library/decimal.html?#decimal.Decimal显示字符串参数的正确格式。如果你想计算2/3,那么

>>> Decimal(2)/Decimal(3)
Decimal('0.6666666666666666666666666667')

Decimal(2/3) gives Decimal('0.66666666666666662965923251249478198587894439697265625')因为 2/3 计算为浮点数,而浮点数本质上具有有限的精度。这是计算机可以最接近地表示的2/3使用浮子。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python 小数.InvalidOperation 错误 的相关文章