小编典典

round()似乎无法正确舍入

python

round()函数的文档指出,您为其传递了一个数字,并将小数点后的位置传递给四舍五入。因此,它 应该 这样做:

n = 5.59
round(n, 1) # 5.6

但是,实际上,良好的旧浮点怪异现象不断蔓延,您会得到:

5.5999999999999996

出于UI的目的,我需要显示5.6。我在互联网上闲逛,发现一些文档取决于我对Python的实现。不幸的是,这在我的Windows开发机和我尝试过的每台Linux服务器上都会发生。另请参阅此处

除了创建自己的回合库之外,还有什么办法可以解决?


阅读 219

收藏
2020-12-20

共1个答案

小编典典

我不知道它的存储方式,但至少格式化正确:

'%.1f' % round(n, 1) # Gives you '5.6'
2020-12-20