如何在python中避免使用e-05

use*_*095 5 python int decimal

我有一个Python程序,我计算一些概率,但在一些答案中,我得到了f.ex. 8208e-06,但是我希望我的号码能够在常规表格中出现0.000008 ...我该怎么做?

Bak*_*riu 11

您可以使用f格式说明符并指定小数位数:

>>> '{:.10f}'.format(1e-10)
'0.0000000001'
Run Code Online (Sandbox Code Playgroud)

精度默认为6,所以:

>>> '{:f}'.format(1e-6)
'0.000001'
>>> '{:f}'.format(1e-7)
'0.000000'
Run Code Online (Sandbox Code Playgroud)

如果你想删除尾随零rstrip:

>>> '{:f}'.format(1.1)
'1.100000'
>>> '{:f}'.format(1.1).rstrip('0')
'1.1'
Run Code Online (Sandbox Code Playgroud)

默认情况下,使用str(或repr)python 转换为字符串时,返回给定float的最短可能表示形式,这可能是指数表示法.

这通常是您想要的,因为十进制表示可能会显示应用程序用户通常不想要的表示错误,并且不关心:

>>> '{:.16f}'.format(1.1)
'1.1000000000000001'
>>> 1.1
1.1
Run Code Online (Sandbox Code Playgroud)