指数位数 [英] Number of digits in exponent

查看:117
本文介绍了指数位数的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

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

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.

当前

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

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

推荐答案

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

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)

输出:

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

这篇关于指数位数的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆