python中的格式化指数

python中的格式化指数,python,python-2.7,number-formatting,Python,Python 2.7,Number Formatting,我有一个像1.0e-4,1.0e-10,1.5e-12这样的数字。我想将这些数字写入一个文件,丢弃小数点后的数字,如1e-4、1e-10、1e-12g似乎对第二个数做了手脚,但它有指数大于5的限制。我想要1e+00,即使是1.0。我用%e和str()得到1.0e-4的1.000000e-04。方法1(不适用于小于5的指数): 使用%.0g”%1.5e-12 如果您想更改1.5e-12,则始终可以在其位置使用变量 “%.0g”%1.5e-12给出了'2e-12' “%.0g”%1.0e-4给出了'

我有一个像1.0e-4,1.0e-10,1.5e-12这样的数字。我想将这些数字写入一个文件,丢弃小数点后的数字,如1e-4、1e-10、1e-12g似乎对第二个数做了手脚,但它有指数大于5的限制。我想要1e+00,即使是1.0。我用%e和str()得到1.0e-4的1.000000e-04。

方法1(不适用于小于5的指数): 使用%.0g”%1.5e-12

如果您想更改
1.5e-12
,则始终可以在其位置使用变量

“%.0g”%1.5e-12
给出了
'2e-12'

“%.0g”%1.0e-4
给出了
'0.0001'

方法2(适用于任意数量的指数): 要能够使用任意数量的指数,请使用:

from decimal import *
'%.1e' % Decimal("%.0g" % 1.5e-12)
使用此代码:

'%.1e'%Decimal(%.0g”%1.5e-12)
给出了
'2.0e-12'

'%.1e'%Decimal(%.0g”%1.0e-4)
给出了
'1.0e-04'

编辑:

使用:


对于
2e-12
而不是
2.0e-12

,因此您将1.0更改为1e+00或反过来?但是
1.5e
将四舍五入为
2e
尝试
“%.0e”%n
。为了便于参考,1.5e-12是2e-12,而不是1e-12。split()具有列表理解功能,以获取小数点前的字符和“e”后的字符?在转换为字符串之前是否需要做这些工作?Python中的大多数浮点数都是近似值。1.5e-10的近似值必须小于实际算术值1.5e-10。@dg_no_9如果这是您要查找的答案,请确保将其标记为答案并向上投票,这会很有帮助!)
from decimal import *
'%.0e' % Decimal("%.0g" % 1.5e-12)