3

我正在尝试在字符串中显示 sig figs 并且我找到了这种'{:.2f}'.format(x)样式,只要我在代码中将 sig figs 的数量作为整数,它就可以很好地工作,但是我似乎无法让这种格式的格式工作如果sig figs 的数量包含在一个变量中。 2工作sig=2不。我一直在尝试使用%with with来像这样.format插入,但它不起作用。 sig'{:.%if}'.format(x) %sig'

我确信有一个非常简单优雅的解决方案,但我无法弄清楚。任何帮助将不胜感激。谢谢。

4

2 回答 2

5

您实际上可以使用字符串格式替换来为格式字符串本身提供参数:

In [79]: '{:.{s}f}'.format(1.234, s=2)
Out[79]: '1.23'

In [80]: '{:.{s}f}'.format(1.234, s=3)
Out[80]: '1.234'
于 2013-01-10T16:03:08.043 回答
1

对于我们这些非常喜欢它的人,您也可以使用旧式字符串插值(% 格式)来做到这一点:

>>> "%.*f"%(2,1.2345)
'1.23'
>>> "%.*f"%(3,1.2345)
'1.234'

但是,如果您使用的是较新版本的python(2.6+),您可能应该使用@unutbu 提出的表单

于 2013-01-10T16:11:23.143 回答