Python f 字符串在浮点数上的惊人结果
Python f-string surprising results on floats
我正在尝试以定点表示法格式化浮点数: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}")
我正在尝试以定点表示法格式化浮点数: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}")