【发布时间】:2021-03-09 10:31:18
【问题描述】:
考虑以下sn-p:
for value in [1.123, 1.126, 1.12, 1.16, 1.1, 1.0, 12345.6789]:
print(
f'Testing {value:>12}',
f'.2 {value:>17.2}',
f'.2g {value:>16.2g}',
f'.2f {value:>16.2f}',
end='\n\n',
sep='\n'
)
代码显示{value:.2}和{value:.2f}输出不同的结果。
输出:
Testing 1.123
.2 1.1
.2g 1.1
.2f 1.12
Testing 1.126
.2 1.1
.2g 1.1
.2f 1.13
Testing 1.12
.2 1.1
.2g 1.1
.2f 1.12
Testing 1.16
.2 1.2
.2g 1.2
.2f 1.16
Testing 1.1
.2 1.1
.2g 1.1
.2f 1.10
Testing 1.0
.2 1.0
.2g 1
.2f 1.00
Testing 12345.6789
.2 1.2e+04
.2g 1.2e+04
.2f 12345.68
.2f 说明符将数字转换为定点表示法。
我发现.2 和.2g 相似但不完全。
.2 说明符的预期行为是什么?
【问题讨论】:
-
.2f表示您使用浮点数指定两位精度f -
@BijayRegmi 好的,但是
.2是做什么的? -
@BijayRegmi 我认为这是我们已经知道的一点。
-
您只使用了小数点 前 1 位数字。尝试更多位数的数字,差异会变得更加明显。即
f"{43.58458:.2}"与f"{43.58458:.2f}"
标签: python python-3.x f-string