Python将值四舍五入到小数点后3位



由于某些原因,下面的代码没有将值四舍五入到小数点后3位,而是只有1位。什么好主意吗?

for y in range(len(candidates_list)):
analysis.write(f"n{candidates_list[y]}: {round(percentages_list[y],3)}% ({candidates_votes[y]})")

谢谢!

由于您使用的是f字符串(这非常酷,而不是旧的.format风格),这不是数字的四舍五入表示,因为前面的答案给了您正确的方法,这是f字符串上的数字的截断表示,但这个答案可能对其他人有所帮助。

不打印

f'{round(percentages_list[y],3)}'

你可以:

f'{percentages_list[y]:.3f}'

不使用round()函数,而是使用适当的格式化操作。这将包括小数点后的尾零数字。

并使用zip()并行遍历多个列表,而不是列表索引。

for candidate, percentage, vote in zip(candidates_list, percentages_list, candidates_votes):
analysis.write(f"n{candidate}: {percentage:.3f}% ({vote}")

最新更新