打印不带指数形式/科学计数法的十进制数

时间:2018-07-15 18:15:36

标签: python-3.x floating-point precision

要打印不带指数形式的浮点数,我们可以这样写:

print('%f' % (10**-8))

但是由于精度误差,通常显示零。另外,我们可以使用Decimal.decimal(float)来精确打印浮点数。但这会以指数格式(即10e-10)打印数字。而且我似乎无法将它们组合在一起,因为我不知道如何像我使用decimal来格式化“ float”一样格式化'%f'。所以我的问题是,如何按照我想要的方式完成此任务?

编辑:例如,此处使用的-8号电源。功效可以是可变的。我也想知道我是否可以高精度地打印两个数字的差。

1 个答案:

答案 0 :(得分:1)

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