Python以特定格式浮动到字符串(科学计数法)

J.G*_*alt 3 python string formatting python-3.x

这是一个非常具体的问题,但是尽管有大量的在线资源,但我似乎找不到能满足我需要的功能。假设我有一个任意的浮点数,例如说“ 2”。我想将浮点数转换为以下格式:

'2.000000E+000'
Run Code Online (Sandbox Code Playgroud)

也就是说:指数前有8位数字,指数后有3位数字(四位为正负号)。有一些功能几乎(但不完全)产生所需的输出。使用

"%.6e" %float(2)
Run Code Online (Sandbox Code Playgroud)

产生输出

'2.000000e+00'
Run Code Online (Sandbox Code Playgroud)

这使我可以指定在指数之前(而不是在指数之后)必须输入的位数-它始终为我提供两位数字。另一方面,函数numpy.format_float_scientific:

numpy.format_float_scientific(2.0000000000, exp_digits=3,precision=6)
Out[30]: '2.e+000'
Run Code Online (Sandbox Code Playgroud)

允许我指定的位数的指数,而不是之前。我想两者都做。你知道我怎么能做到吗?

stu*_*ent 7

您可以尝试uniqueFalsenumpy

numpy.format_float_scientific(2.0000000000, unique=False, exp_digits=3,precision=6)
Run Code Online (Sandbox Code Playgroud)

输出:

'2.000000e+000'
Run Code Online (Sandbox Code Playgroud)