在Python中控制64位浮点数打印的最佳方法是什么?
我可以使用%e说明符轻松地以指数格式显示所有数字。但是,我只想使用指数格式,如果数字中有x个以上的数字。例如,下面是原始的64位浮点数,我希望它看起来像一个字符串:
value what's printed
1.123456 1.123456
123456.1234 12345.6e4
1.0 1.0
.1234567 1.23456e-1上面我只想看到7位数字的总数,然后转换为指数表示法,如果有更多的需要。
这有什么意义吗?从本质上讲,我希望只有当数字达到某个阈值时,才能使用指数表示法。我知道%e允许像%.3e这样的说明符,但这将始终使用指数表示法,而不管数字的大小。
发布于 2012-11-01 02:44:39
您可能可以使用'%g' --它将使用%f或%e中较短的一个
>>> '%.4g'%(1154.2)
'1154'
>>> '%.4g'%(11545.2)
'1.155e+04'
>>> '%.4g'%(1.15452)
'1.155'
>>> '%.4g'%(0.000005321)
'5.321e-06'换句话说,这将打印出一个具有4个有效数字的数字,并在必要时使用科学记数法。
发布于 2012-11-01 02:52:56
我想我可以这样做:
>>> def pretty_float(val):
... if len(repr(val)) > 7:
... return '%e' % val
... else:
... return repr(val)
... https://stackoverflow.com/questions/13165453
复制相似问题