将科学记数法中的浮点数转换为“d.dd x 10^(-n)”

wkw*_*kwk 2 python

我正在构建一个计算器来计算一些与化学相关的计算。所以大多数结果将是非常小的值。

一个示例结果是4.840909814726882e-09

如何以类似的格式显示此值4.84 x 10^(-9)

Roy*_*hen 6

尝试这个:

format(4.840909814726882e-09, '.2e').replace('e', ' x 10^(') + ')'
Run Code Online (Sandbox Code Playgroud)

输出:
4.84 x 10^(-09)
这不正是你想要的结果,但它的简单。

还有:

def my_format(num):
    s = format(num, '.2e')
    base, exp = s.split('e')
    return f'{base} x 10^({int(exp)})'
Run Code Online (Sandbox Code Playgroud)

输出:

>>> my_format(4.840909814726882e-09)
'4.84 x 10^(-9)'
Run Code Online (Sandbox Code Playgroud)

这更复杂,但这正是您想要的结果。