首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >控制指数数的精度/打印

控制指数数的精度/打印
EN

Stack Overflow用户
提问于 2012-11-01 02:36:25
回答 2查看 2.5K关注 0票数 1

在Python中控制64位浮点数打印的最佳方法是什么?

我可以使用%e说明符轻松地以指数格式显示所有数字。但是,我只想使用指数格式,如果数字中有x个以上的数字。例如,下面是原始的64位浮点数,我希望它看起来像一个字符串:

代码语言:javascript
复制
value       what's printed

1.123456    1.123456
123456.1234 12345.6e4
1.0         1.0
.1234567    1.23456e-1

上面我只想看到7位数字的总数,然后转换为指数表示法,如果有更多的需要。

这有什么意义吗?从本质上讲,我希望只有当数字达到某个阈值时,才能使用指数表示法。我知道%e允许像%.3e这样的说明符,但这将始终使用指数表示法,而不管数字的大小。

EN

回答 2

Stack Overflow用户

发布于 2012-11-01 02:44:39

您可能可以使用'%g' --它将使用%f%e中较短的一个

代码语言:javascript
复制
>>> '%.4g'%(1154.2)
'1154'
>>> '%.4g'%(11545.2)
'1.155e+04'
>>> '%.4g'%(1.15452)
'1.155'
>>> '%.4g'%(0.000005321)
'5.321e-06'

换句话说,这将打印出一个具有4个有效数字的数字,并在必要时使用科学记数法。

票数 1
EN

Stack Overflow用户

发布于 2012-11-01 02:52:56

我想我可以这样做:

代码语言:javascript
复制
>>> def pretty_float(val):
...   if len(repr(val)) > 7:
...     return '%e' % val
...   else:
...     return repr(val)
... 
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13165453

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档