为了打印一个不带指数形式的浮点数,我们可以这样写:
但是由于精度误差,通常会显示零。相反,我们可以使用
那么我的问题是,如何按照我想要的方式完成这件事?
注意:这里使用的功率-8只是一个例子。功率可以是变量。此外,我想知道是否可以以高精度打印两个数字之间的差异。
要打印一个不带指数形式的浮点数,我们可以像这样编写:
print('%f' % (10**-8))
但是由于精度误差,通常会显示零。相反,我们可以使用
Decimal.decimal(float)
来精确打印浮点数。但是它会以指数形式打印数字,即10e-10
。我似乎无法将它们组合起来,因为我不知道如何像使用'%f'
格式化浮点数一样格式化Decimal
。那么我的问题是,如何按照我想要的方式完成这件事?
注意:这里使用的功率-8只是一个例子。功率可以是变量。此外,我想知道是否可以以高精度打印两个数字之间的差异。
.format
格式化字符串比使用基于%
的格式化更好。对于基于%
的格式化,一个Decimal
实例会首先被转换为最接近的float
,可能引入舍入误差。对于.format
格式化,格式化直接应用于实际的Decimal
值而不需要进行浮点数转换。(假设Python版本 >= 3.1) - Mark Dickinson