要打印一个没有指数形式的浮点数,我们可以这样写:
print('%f' % (10**-8))
但由于精度误差,这通常显示为零。相反,我们可以使用Decimal.decimal(float)
精确地打印浮点数字。但这会以指数格式打印数字,即10e-10
。我似乎无法将它们组合起来,因为我不知道如何像使用'%f'
格式化浮点那样格式化Decimal
。
所以我的问题是,如何按照我想要的方式完成这件事?
注意:这里使用的power-8只是一个例子。功率可能是可变的。此外,我想知道是否可以高精度地打印两个数字的差值。
from decimal import Decimal
print('%.8f' % Decimal(10**-8))
输出:
0.00000001
要动态指定小数位数,可以使用以下方法:
from decimal import Decimal
power = 10
print('%.*f' % (power, Decimal(10**-power)))
打印:
0.0000000001