指数位数

发布于 2021-01-29 18:38:09

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

目前,

f = 0.0000870927939438012
>>> "%.14e"%f
'8.70927939438012e-05'
>>> "%0.14e"%f
'8.709279e-005'

我要打印的是: '8.70927939438012e-005'

关注者
0
被浏览
48
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

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

    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
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看