您可以在同一问题使用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