round()似乎无法正确舍入 [英] round() doesn't seem to be rounding properly

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

问题描述

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屋!

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