round命令无法获得所需的结果

her*_*rry 1 python

在以下代码中,当我在for循环中打印h值时,它会打印1.2,1.4,1.6的值.但我想要1.20,1.40,1.60.我试图使用圆函数,但结果仍然相同.如何在for循环中获得精确值1.20,1.40,1.60?

low =[1.20, 1.40, 1.60, 1.80, 2.00, 2.20, 2.40]
for k in range(len(low)):
    h = round(low[k],2)
    print(h)
Run Code Online (Sandbox Code Playgroud)

iBu*_*Bug 5

试试这个:

print("{:.2f}".format(h))
Run Code Online (Sandbox Code Playgroud)

它不是舍入问题,而是输出格式问题.换句话说,数字是正确舍入的,只是当打印尾随零没有打印出来时,所以你需要一些格式来强制打印出零.

  • @herry值1.2*是*值1.20.如果你想将`1.20`而不是`1.2`写入文本文件 - 在写操作中使用字符串格式.无论您是将字符串打印到REPL还是将其写入文件,此答案都适用. (2认同)