在Python中的round()似乎不是正确的四舍五入 [英] round() in Python doesn't seem to be rounding properly

查看:112
本文介绍了在Python中的round()似乎不是正确的四舍五入的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

round()函数的文档声明您已通过它是一个数字,以及小数点后面的位置。因此它应该这样做:

$ p $ n $ 5.59
round(n,1) #5.6

但是,实际上,古老的浮点奇怪会浮现出来:

  5.5999999999999996 

为了UI的目的,我需要显示 5.6 。我戳了一下互联网,发现一些文档,这依赖于我的Python实现。不幸的是,这发生在我的Windows开发机器和我试过的每个Linux服务器上。 另请参阅



创建自己的循环库的缺点,有没有办法解决这个问题?

解决方案

它的存储方式,但至少格式化工作正常:

 '%。1f'%round(n,1)#给出你'5.6'


The documentation for the round() function states that you pass it a number, and the positions past the decimal to round. Thus it should do this:

n = 5.59
round(n, 1) # 5.6

But, in actuality, good old floating point weirdness creeps in and you get:

5.5999999999999996

For the purposes of UI, I need to display 5.6. I poked around the Internet and found some documentation that this is dependent on my implementation of Python. Unfortunately, this occurs on both my Windows dev machine and each Linux server I've tried. See here also.

Short of creating my own round library, is there any way around this?

解决方案

can't help the way it's stored, but at least formatting works correctly:

'%.1f' % round(n, 1) # gives you '5.6'

这篇关于在Python中的round()似乎不是正确的四舍五入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆