您可以在同一問題使用g
格式說明的基礎上,精度的指數和「通常」的表示法之間選擇哪個,以及指定的顯著數字的數目:
>>> "%.3g" % 4.311237638482733e-91
'4.31e-91'
如果要始終用指數表示法表示數字,請使用e
格式說明符,而f
從不使用將使用指數表示法。可能性的完整列表被描述爲here。
還要注意,而不是%
樣式的格式,你可以使用str.format
:
>>> '{:.3g}'.format(4.311237638482733e-91)
'4.31e-91'
str.format
更強大,比%
樣式的格式可定製的,它也更加一致。例如:
>>> '' % []
''
>>> '' % set()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: not all arguments converted during string formatting
>>> ''.format([])
''
>>> ''.format(set())
''
如果你不喜歡叫上一個字符串文字可以使用format
內置函數的方法:
>>> format(4.311237638482733e-91, '.3g')
'4.31e-91'
' 「%0.3克」 %4.311237638482733e-91 - >'4.31e-91'''''不是格式化浮點數的唯一方法。請參閱[這裏](https://docs.python.org/2/library/stdtypes.html#string-formatting)。 'str.format'更強大。 – Bakuriu
'格式(4.311237638482733e-91,'.2e')'?? –
thx快速回答! – Leszek