Python 2.7.5 +
新风格' {X.Yf}' .format(num)似乎不像旧样式'%X.Yf'%(num )。有人可以解释一下吗?
>>> '%8.3f' % (0.98567)
' 0.986'
>>> '%8.3f' % (1.98567)
' 1.986'
>>> '{num:8.3}'.format(num=0.98567)
' 0.986'
>>> '{num:8.3}'.format(num=1.98567)
' 1.99'
请注意旧样式如何在小数点后显示3位数,但新样式有时会打印2,有时为3.我是否犯了一些愚蠢的错误?
答案 0 :(得分:6)
也以新格式使用f
:
>>> '{num:8.3f}'.format(num=1.98567)
' 1.986'
没有格式类型,默认值为g
,精度被解释为总位数(不包括小数点前的0)。在declimal点之前有一个1
,后面只显示2位数。
如果您使用g
而不是f
,则会看到与旧字符串格式相同的输出:
>>> '%8.3g' % (1.98567)
' 1.99'