round()似乎无法正确舍入 [英] round() doesn't seem to be rounding properly
问题描述
round()函数的文档指出您通过了它是一个数字,小数点后的位置要舍入.因此,它应该执行此操作:
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
出于UI的目的,我需要显示5.6
.我在互联网上闲逛,发现了一些文档,取决于我对Python的实现.不幸的是,这在我的Windows开发机和我尝试过的每台Linux服务器上都会发生. 另请参见.
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?
推荐答案
我无法帮助存储它,但至少格式化正确:
I can't help the way it's stored, but at least formatting works correctly:
'%.1f' % round(n, 1) # Gives you '5.6'
这篇关于round()似乎无法正确舍入的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!