小编nio*_*rix的帖子

python中Decimal库的精度

从Decimal的文档页面来看,我认为一旦我们使用十进制来计算,它将是一个正确的结果,没有任何浮动错误。

但是当我尝试这个方程时

from decimal import Decimal, getcontext
getcontext().prec = 250

a = Decimal('6')
b = Decimal('500000')

b = a ** b
print('prec: ' + str(getcontext().prec) + ', ', end='')
print(b.ln() / a.ln())
Run Code Online (Sandbox Code Playgroud)

它给了我不同的结果!

在此输入图像描述

我想计算以 6 为基数表示的数字6**500000,所以我的预期结果是int(b.ln() / a.ln()) + 1,所以我的预期结果是,应该是 500001。但是,当我将 prec 设置为 250 时,它给出了错误的结果。我该如何解决这个问题?

另外,如果我想输出不带科学计数法(即 )的结果5E+5,我该怎么办?

python precision decimal

5
推荐指数
1
解决办法
199
查看次数

标签 统计

decimal ×1

precision ×1

python ×1