Number of digits in exponent

后端 未结 4 1732
忘了有多久
忘了有多久 2020-12-01 14:30

Is it possible to set the number of digits to be used for printing the exponent of a floating-point number? I want to set it to 3.

Currently,

f = 0.0         


        
4条回答
  •  盖世英雄少女心
    2020-12-01 14:45

    There is a no way to control that, best way is to write a function for this e.g.

    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)
    

    Output:

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

提交回复
热议问题