我邪魅一笑 发表于 2022-10-5 17:52:49

pyhon:浮点数用科学计数法表示,指数部分怎么设置输出三位数?

本帖最后由 青出于蓝 于 2022-11-5 15:44 编辑

例如:3.1415926
用%e输出为3.141593e+00
可如果我想得到3.141593e+000,应该怎么办?

Twilight6 发表于 2022-10-5 18:10:00



没办法,主要是这样没意义吧

科学计数法指数为整数值,两位指数已经非常大

且 00 和000 都是一样的,完全不影响代码结果

tommyyu 发表于 2022-10-5 19:27:18

本帖最后由 tommyyu 于 2022-10-5 19:29 编辑

没有就自己写个函数实现{:10_256:}>>> def add_len(n, l):
      n = str(n)
      while len(n) < l:
            n = '0'+n
      return n

>>> def add_len_e(s, l):
      try:
            temp = s.split('e')
            e = 'e'
      except:
            try:
                temp = s.split('E')
                e = 'E'
            except:
                print('出错了!')
      temp =e + temp + add_len(temp, l)
      return temp + temp


>>> print(add_len_e("%e" % 3.1415926, 3))
3.141593e+000

阿奇_o 发表于 2022-10-5 19:36:23

那只是 字符显示形式而已, 数量级10**99 (10的99次方,一般情况下,肯定足够你用了呀)
真要“画蛇添足”,加个0,也不是不可以,比如这样:s = "{:e}".format(math.pi)
print(s[:-2] + '0' + s[-2:])
3.141593e+000

big = "{:e}".format(1_234_567_890_000)
big
'1.234568e+12'
big[:-2] + '0' + big[-2:]
'1.234568e+012'

jackz007 发表于 2022-10-9 11:54:23

本帖最后由 jackz007 于 2022-10-9 12:23 编辑

pi = 3.141592653589793
s = '%e' % pi
s = s[: -2] + '0' + s[-2 :]
print(s)
      运行实况:
D:\\Python>python x.py
3.141593e+000

D:\\Python>
页: [1]
查看完整版本: pyhon:浮点数用科学计数法表示,指数部分怎么设置输出三位数?