首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用字符串格式来同时显示前导零和3的精度?

如何使用字符串格式来同时显示前导零和3的精度?
EN

Stack Overflow用户
提问于 2010-08-31 06:05:44
回答 3查看 21K关注 0票数 38

我试图用前导零和尾随零来表示一个数字,这样总宽度就是7,包括小数点。例如,我想将"5“表示为"005.000”。看起来字符串格式化可以让我做其中的一个,但不能两个都做。下面是我在Ipython中得到的输出,说明了我的问题:

代码语言:javascript
复制
In [1]: '%.3f'%5
Out[1]: '5.000'

In [2]: '%03.f'%5
Out[2]: '005'

In [3]: '%03.3f'%5
Out[3]: '5.000'

第1行和第2行的操作完全符合我的预期。第三行忽略了我想要前导零的事实。有什么想法吗?谢谢!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2010-08-31 06:09:29

第一个数字是的总位数,包括小数点。

代码语言:javascript
复制
>>> '%07.3f' % 5
'005.000'

重要说明:两个小数点(.)和减号(-)包括在计数中。

票数 59
EN

Stack Overflow用户

发布于 2018-09-13 14:14:49

这花了我一秒钟的时间来弄清楚如何使用@nosklo的方式,但是使用.format()和嵌套。

因为我在这里分享的其他自动取款机上找不到一个例子。

使用"{}".format(a)的示例

Python 2

代码语言:javascript
复制
>>> a = 5
>>> print "{}".format('%07.3F' % a)
005.000
>>> print("{}".format('%07.3F' % a))
005.000

Python 3

更多的python3方式,created from docs,但两者都按预期工作。

注意%:,在python3中格式的位置是不同的。

代码语言:javascript
复制
>>> a = 5
>>> print("{:07.3F}".format(a))
005.000
代码语言:javascript
复制
>>> a = 5
>>> print("Your Number is formatted: {:07.3F}".format(a))
Your Number is formatted: 005.000

使用"{}".format(a)嵌套的示例

然后扩展它以适合我的代码,那就是嵌套的.format()

代码语言:javascript
复制
print("{}: TimeElapsed: {} Seconds, Clicks: {} x {} "
      "= {} clicks.".format(_now(),
                            "{:07.3F}".format((end -
                                               start).total_seconds()),
                            clicks, _ + 1, ((_ + 1) * clicks),
                            )
      )

它会按照我想要的方式格式化所有内容。

结果

代码语言:javascript
复制
20180912_234006: TimeElapsed: 002.475 Seconds, Clicks: 25 + 50 = 75 clicks.

需要注意的重要事项:

  • @babbitt:第一个数字是字段总宽度。

  • @meawoppl:这也算减号!...
票数 11
EN

Stack Overflow用户

发布于 2010-08-31 06:13:53

编辑: Gah,再一次被击败

代码语言:javascript
复制
'%07.3F'%5

第一个数字是总的字段宽度。

票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3604587

复制
相关文章

相似问题

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