对于我正在制作的情节,我有:
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事务的上下文中使用它。
谢谢!
答案 0 :(得分: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')
您可能会发现this有用。
Python Docs包含一些示例。
在大多数情况下,语法类似于旧的%-formatting, 添加{}和with:使用而不是%。例如, '%03.2f'可以翻译为'{:03.2f}'。
答案 1 :(得分:1)
也许你可以这样做 -
plt.suptitle('Name:{0}, MJD:{1}, std dev > {2}'.format(
pname, mjd[i], ("%.2f" % rmslevel)
), fontsize=12, fontweight='bold')
答案 2 :(得分: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.
您可以阅读更多here
答案 3 :(得分:1)
'Name:{0}, MJD:{1}, std dev > {2:.2f}'.format(pname, mjd[i], rmslevel)