我想在Python中将指数浮点数舍入为两个小数表示形式。
4.311237638482733e-91 --> 4.31e-91
您知道执行此操作的任何快速技巧吗?
像
round(float, 2)
和"%.2f"%float
这样的简单解决方案不适用于指数浮点数:/编辑:
它不是关于四舍五入的浮点数,而是关于指数浮点数的四舍五入,因此它与How to round a number to significant figures in Python不是一个相同的问题
最佳答案
您可以使用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'
关于python - 将指数浮点数舍入到小数点后2位,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/24118366/