在函数

时间:2017-11-22 03:00:55

标签: python format

以下功能无效:

def myround(sfloat, dec):
    print("{0:."+str(dec)+"f}")    # only to show the string formed.
    return ("{0:."+str(dec)+"f}".format(sfloat))

myround(2.35698, 2)

错误是:

{:.2f}
Traceback (most recent call last):
  File "mytest.py", line 8, in <module>
    myround(2.35698, 2)
  File "mytest.py", line 6, in myround
    return ("{0:."+str(dec)+"f}".format(sfloat))
ValueError: Single '}' encountered in format string

第一个打印功能显示正确的字符串:{:.2f}。我试过了{0:.2f},但这也行不通。 \{\}也不起作用。

问题在哪里以及如何解决?

1 个答案:

答案 0 :(得分:2)

.优先于+。试试这个:("{0:."+str(dec)+"f}").format(sfloat)