我想在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/

10-16 12:56