Python f-string在浮点上的惊人结果

Python f-string在浮点上的惊人结果,python,if-statement,formatting,f-string,Python,If Statement,Formatting,F String,我试图用定点表示法格式化浮点数:x.xxx,小数点后三位数字,不管数字的值是多少。我得到了令人惊讶的结果。特别是第一个建议,它给了我三个有效位,而不是小数点后的三位数字。我如何告诉它我真正想要什么 >>> print(f"{.0987:5.03}") 0.0987 *expected: 0.099* >>> print(f"{0.0:05.03}") 000.0 *expected: 0.000* >>

我试图用定点表示法格式化浮点数:x.xxx,小数点后三位数字,不管数字的值是多少。我得到了令人惊讶的结果。特别是第一个建议,它给了我三个有效位,而不是小数点后的三位数字。我如何告诉它我真正想要什么

>>> print(f"{.0987:5.03}")  
0.0987
*expected: 0.099*
>>> print(f"{0.0:05.03}") 
000.0
*expected: 0.000*
>>> print(f"{0.0:5.3}")   
  0.0
# added "3f" to specify decimals places

print(f"{.0987:5.3f}")
#expected: 0.099*
print(f"{0.9687:05.3f}")
#expected: 0.000*
print(f"{0.0:5.3f}")