我正在使用python 2.7,我拥有的代码是:

a = 10.5 * 22.34 / 2.0
print "%.2f" % a

我期望的结果是117.29,但显示为117.28。该如何解决呢?

最佳答案

如果Python使用的是64位IEEE-754二进制浮点类型,则其使用的确切值将是

117.284999999999996589394868351519107818603515625

...显然低于117.28和117.29之间的中点。可能就是这样。

另一个选择是Python使用Banker's Rounding

如果确切的十进制值对您很重要,则您可能需要考虑使用 decimal

10-08 03:11