0

对于我正在制作的情节,我有:

 plt.suptitle('Name:{0}, MJD:{1}, std dev > {2}'.format(pname, mjd[i], rmslevel), fontsize=12, fontweight='bold')

我希望将出现在 {2} 位置的数字(又名 rmslevel)仅显示 2 个小数位。

当然,我已经看到了与此类似的问题,以及解决方案:

print "%.1f" % number

但我不知道如何让它在我在同一行中进行的 .format 事情的上下文中工作。

谢谢!

4

4 回答 4

2

你正在寻找这个。

>>> "{0:.2f}".format(123.678956)   # Or "{:.2f}".format(123.678956)
'123.68'

您的代码现在变成

plt.suptitle('Name:{0}, MJD:{1}, std dev > {2:.2f}'.format(pname, mjd[i], rmslevel), fontsize=12, fontweight='bold')

您可能会发现很有用。

Python Docs包含一些示例。

在大多数情况下,语法类似于旧的 % 格式,只是添加了 {} 和 : 而不是 %。例如,“%03.2f”可以翻译为“{:03.2f}”。

于 2013-07-22T10:28:04.473 回答
1

也许你可以这样做 -

plt.suptitle('Name:{0}, MJD:{1}, std dev > {2}'.format(
             pname, mjd[i], ("%.2f" % rmslevel)
             ), fontsize=12, fontweight='bold')
于 2013-07-22T10:27:11.250 回答
1

正确的语法是:

>>> print "{0:.2f}".format(4)
4.00

所以在你的例子中:

plt.suptitle('Name:{0}, MJD:{1}, std dev > {2:.2f}'.format(pname, mjd[i], rmslevel), fontsize=12, fontweight='bold')
#                                          ^^^^^^^ Notice the change.

你可以在这里阅读更多

于 2013-07-22T10:27:58.113 回答
1
'Name:{0}, MJD:{1}, std dev > {2:.2f}'.format(pname, mjd[i], rmslevel)
于 2013-07-22T10:29:43.730 回答