我正在寻找一种方法来舍入到最接近的500.我一直在使用:
math.ceil(round(8334.00256 + 250, -3))
因此,我在ArcGIS中制作的地图中有一个比例值。我有能力读取和写入比例因子(即1:8334 ....基本上,你设置千分之一,它默认为一个比例)如果比例因子不是500的因素,我想要向上舍入math.ceil将向上舍入任何十进制值,并且回合(n,-3)将舍入到最接近的千分之一,但我正在努力找到一种方法来舍入到最接近的500。
有什么建议吗? 谢谢, 麦克
答案 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
以进行合理的整数除法,则不需要“浮动”转换。