gpt4 book ai didi

python - Python中科学记数法中的指数数字

转载 作者:行者123 更新时间:2023-11-28 18:28:43 25 4
gpt4 key购买 nike

在 Python 中,科学记数法总是给我 2 位数的指数:

print('%17.8E\n' % 0.0665745511651039)
6.65745512E-02

但是,我非常想要像这样的 3 位数字:

6.65745512E-002

我们可以使用 Python 中的内置配置/函数来做到这一点吗?

我知道我的问题基本上是同一个问题:Python - number of digits in exponent ,但这个问题是 4 年前提出的,我不想调用这样的函数一千次。我希望现在应该有更好的解决方案。

最佳答案

不幸的是,您无法更改此默认行为,因为您无法覆盖 str 方法。

但是,您可以包装 float ,并使用 __format__ 方法:

class MyNumber:
def __init__(self, val):
self.val = val

def __format__(self,format_spec):
ss = ('{0:'+format_spec+'}').format(self.val)
if ( 'E' in ss):
mantissa, exp = ss.split('E')
return mantissa + 'E'+ exp[0] + '0' + exp[1:]
return ss


print( '{0:17.8E}'.format( MyNumber(0.0665745511651039)))

关于python - Python中科学记数法中的指数数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39184719/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com