Mat*_*teo 8 python math python-3.x
运行这样的东西时,我总是遇到这个错误:
from decimal import *
getcontext().prec =30
b=("2/3")
Decimal(b)
Run Code Online (Sandbox Code Playgroud)
错误:
Traceback (most recent call last):
File "Test.py", line 6, in <module>
Decimal(b)
decimal.InvalidOperation: [<class 'decimal.ConversionSyntax'>]
Run Code Online (Sandbox Code Playgroud)
另外,为什么我从控制台得到这个结果?
>>> Decimal(2/3)
Decimal('0.66666666666666662965923251249478198587894439697265625')
Run Code Online (Sandbox Code Playgroud)
谢谢
Kev*_*vin 13
Decimal的初始值设定项不能接受带斜杠的字符串.非正式地,字符串必须看起来像一个数字.此表显示字符串参数的正确格式.如果你想计算2/3,那么
>>> Decimal(2)/Decimal(3)
Decimal('0.6666666666666666666666666667')
Run Code Online (Sandbox Code Playgroud)
Decimal(2/3)给出Decimal('0.66666666666666662965923251249478198587894439697265625')因为2/3计算浮点数,并且浮点数具有固有的有限精度.这是计算机2/3使用浮点数表示的最接近的值.