我想将指数浮点数舍入为Python中的两位小数。
4.311237638482733e-91 --> 4.31e-91
您知道这样做有什么捷径吗?
简单的解决方案,例如round(float, 2)
和"%.2f"%float
不适用于指数浮点数:/
编辑:这不是关于舍入浮点数,而是舍入指数浮点数,因此它与如何在Python中将数字舍入到有效数字不是一个相同的问题
您可以使用g
格式说明符,该格式说明符根据精度在指数和“常规”表示法之间进行选择,并指定有效位数:
>>> "%.3g" % 4.311237638482733e-91
'4.31e-91'
如果要始终以指数表示法表示数字,请使用e
格式说明符,而f
不要使用指数表示法。这里描述了所有可能性。
另请注意,%
您可以使用-style格式来代替str.format
:
>>> '{:.3g}'.format(4.311237638482733e-91)
'4.31e-91'
str.format
比%
-style格式更强大,更可自定义,并且更加一致。例如:
>>> '' % []
''
>>> '' % 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'
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句