圆形到最接近的500,Python

时间:2012-03-21 18:11:33

标签: python rounding

我正在寻找一种方法来舍入到最接近的500.我一直在使用:

math.ceil(round(8334.00256 + 250, -3))

因此,我在ArcGIS中制作的地图中有一个比例值。我有能力读取和写入比例因子(即1:8334 ....基本上,你设置千分之一,它默认为一个比例)如果比例因子不是500的因素,我想要向上舍入math.ceil将向上舍入任何十进制值,并且回合(n,-3)将舍入到最接近的千分之一,但我正在努力找到一种方法来舍入到最接近的500。

有什么建议吗? 谢谢, 麦克

3 个答案:

答案 0 :(得分:36)

缩放,舍入,不缩放:

round(x / 500.0) * 500.0

修改:要向上舍入到500的下一个倍数,请使用与math.ceil()而不是round()相同的逻辑:

math.ceil(x / 500.0) * 500.0

答案 1 :(得分:6)

我个人觉得四舍五入但很乱。我宁愿使用:

(x+250)//500*500

//表示整数除法。

编辑:哦,我错过了你“向上”。那么也许

-(-x//500)*500

答案 2 :(得分:3)

也许是这样的:

round(float(x) / 500) * 500

如果您使用的是Python 3或更高版本,或者运行语句from __future__ import division以进行合理的整数除法,则不需要“浮动”转换。