您好我正在尝试理解字符串格式如何与float配合使用:
我试过了
>>> print("%s %s %s %s %-9.10f"%("this","is","monday","morning",56.3648))
它给出
的输出this is monday morning 56.3648000000
但是,
>>> print("%s %s %s %s %10f"%("this","is","monday","morning",56.3648))
给出
的输出this is monday morning 56.364800
造成差异的原因是什么?
答案 0 :(得分:2)
The way the pattern strings are parsed。 %9.10f
将(最小)字段宽度设置为9,精度设置为10,而%10f
仅将 width 设置为10.我认为您打算写{{1}而不是:
%.10f
另外,请考虑使用the newer str.format
formatting style。你的第一个例子将变成
In [4]: '%10f' % 56.3648 # width
Out[4]: ' 56.364800'
In [5]: '%.10f' % 56.3648 # precision
Out[5]: '56.3648000000'