Python 2.7+:以非常精确的方式用非科学记法格式化浮点数的正确方法是什么?

时间:2013-01-03 16:42:00

标签: python floating-point

我希望我对这个问题有所了解。

有时如果我打印一个小浮点数,它看起来像6.1248979238e-05或类似的东西。

我希望能够说“无论如何,输出10位精度就像这样”:0.abcdefghij

1 个答案:

答案 0 :(得分:7)

>>> '%0.10f'% 6.1248979238e-05 
'0.0000612490'

这是“字符串插值”或printf-style formatting,它仍然得到广泛支持和使用。另一个选项是newer style string formatting

>>> '{:.10f}'.format(6.1248979238e-05)
'0.0000612490'

或者如果你想与python2.6兼容:

>>> '{0:.10f}'.format(6.1248979238e-05)
'0.0000612490'

接受你的选择。您使用的是哪个版本取决于您要支持的python版本。如果您只定位 python2.7,则无关紧要。如果要支持早期版本,请使用printf-style。我个人切换到使用我的代码的大多数中的最后一个表单。我不关心python2.5的支持,但是python2.6仍然是新的,我想在可能的情况下支持它。