Skip to main content
 首页 » 编程设计

python之在 Python 中将 2e+18 转换为 2x10^18

2025年05月04日12小虾米

如果我执行以下操作:

print("{:.0e}".format(2500000000000000000)) 

然后我出去:2e+18

我怎样才能将此输出改为 2x10^18(指数正确上标)。

我知道使用 ticker 你可以使用 MathText=True 来改变输出,但这似乎不适用于字符串格式。

编辑:对不起各位,我试图简化这个问题,认为它可以解决问题。我正在尝试对轴上的刻度线进行此更改:

    xticklabels[-1] = '{0:.0e}'.format(xticklabels[-1]).replace('e+','x10^') 

这按照@progo 的建议工作,但不会在指数上标。

请您参考如下方法:

愚蠢的解决方案:

print("{0:.0e}".format(2500000000000000000).replace('e+', 'x10^')) 
=> 2x10^18 

TeX 版本:

def to_TeX(num): 
    num = "{0:.0e}".format(num) 
    mantissa, exponent = num.split('e') 
    exponent = int(exponent) 
    return "{0} \times 10^{{{1}}}".format(mantissa, exponent) 
 
>>> to_TeX(1.8e21) 
'2 \times 10^{21}'