我有一些数字 0.0000002345E^-60。我想按原样打印浮点值。 有什么方法可以做到? print %f 将其截断为 6 位数字。 %n.nf 也给出固定数字。打印不截断的方法是什么。
最佳答案
像这样?
>>> print('{:.100f}'.format(0.0000002345E-60))
0.0000000000000000000000000000000000000000000000000000000000000000002344999999999999860343602938602754
正如您可能从输出中注意到的那样,您并不清楚要如何操作。由于 float 表示,你失去了精度并且不能真正准确地表示数字。因此,您希望数字停止显示的位置并不是很清楚。
另请注意,指数表示通常用于更明确地显示 significant digits 的数量。数有。
您还可以使用 decimal
来避免因二进制 float 截断而丢失精度:
>>> from decimal import Decimal
>>> d = Decimal('0.0000002345E-60')
>>> p = abs(d.as_tuple().exponent)
>>> print(('{:.%df}' % p).format(d))
0.0000000000000000000000000000000000000000000000000000000000000000002345
关于python - 如何打印 float 而不在 python 中进行任何截断?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20048987/