我刚试用了基本的Python Decimal模块,但在Jupyter Notebook中好像无法正常工作:
from decimal import *
getcontext().prec = 1
getcontext()
返回Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999, Emax=999999, capitals=1, clamp=0, flags=[], traps=[InvalidOperation, DivisionByZero, Overflow])
Decimal(0.111111)
返回 Decimal('0.11111100000000000143085543413690174929797649383544921875')
有什么想法吗?
prec
设置仅适用于计算结果。那个很长的数字实际上是0.111111
的实际值(这个数字没有精确的浮点表示)。请改用Decimal('0.111111')
来指定一个精确的数字。 - jasonharpergetcontext()
时,为什么它仍然显示Context(prec=28
?它不应该显示Context(prec=1
吗? - jim jarnacgetcontext.prec = n
之外,还有其他建议吗? - zerosofthezeta