你好,我想动态调整浮点数的字符串表示中显示的小数位数,但是我找不到如何实现的信息。
E.g:
precision = 8
n = 7.12345678911
str_n = '{0:.{precision}}'.format(n)
print(str_n)
应该显示为 -> 7.12345678
但是我得到了一个"KeyError"。我错过了什么?
你好,我想动态调整浮点数的字符串表示中显示的小数位数,但是我找不到如何实现的信息。
E.g:
precision = 8
n = 7.12345678911
str_n = '{0:.{precision}}'.format(n)
print(str_n)
应该显示为 -> 7.12345678
但是我得到了一个"KeyError"。我错过了什么?
除了@Talon之外,对于那些对f-strings感兴趣的人,这也适用。
precision = 8
n = 7.12345678911
print(f'{n:.{precision}f}')
precision
来源于哪里:precision = 8
n = 7.12345678911
print('{0:.{precision}}'.format(n, precision=precision))
{0}
),因此格式化函数知道从哪里获取该参数,但是当您通过某个键指定占位符时,必须明确指定该键。print('{number:.{precision}}'.format(number=n, precision=precision)) # most readable
print('{0:.{1}}'.format(n, precision))
print('{:.{}}'.format(n, precision)) # automatic indexing, least obvious
>>> f"{123.45:.3}"
'1.23e+02'
f
,以得到precision
位小数的定点格式化(详见文档)。print('{number:.{precision}f}'.format(number=n, precision=precision)) # most readable
print('{0:.{1}f}'.format(n, precision))
print('{:.{}f}'.format(n, precision)) # automatic indexing, least obvious
f
,否则字符串将以默认格式打印出来。 - undefined
print('{0:.{1}}'.format(n, precision)
- undefined