Python - 指数中的位数是怎样的?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (1)
  • 关注 (0)
  • 查看 (45)

是否可以设置用于打印浮点数指数的位数?我想将它设置为3。

目前:

f = 0.0000870927939438012
>>> "%.14e"%f
'8.70927939438012e-05'
>>> "%0.14e"%f
'8.709279e-005'
提问于
用户回答回答于

有没有办法控制,最好的方法是为这个例如编写一个函数:

def eformat(f, prec, exp_digits):
    s = "%.*e"%(prec, f)
    mantissa, exp = s.split('e')
    # add 1 to digits as 1 is taken by sign +/-
    return "%se%+0*d"%(mantissa, exp_digits+1, int(exp))

print eformat(0.0000870927939438012, 14, 3)
print eformat(1.0000870927939438012e5, 14, 3)
print eformat(1.1e123, 4, 4)
print eformat(1.1e-123, 4, 4)

输出:

8.70927939438012e-005
1.00008709279394e+005
1.1000e+0123
1.1000e-0123

扫码关注云+社区

领取腾讯云代金券