由于某些原因,下面的代码没有将值四舍五入到小数点后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}")