在Python中的round()似乎不是正确的四舍五入 [英] round() in Python doesn't seem to be rounding properly
问题描述
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屋!