如何使用Python实现数值的网格取整?
Python实现数值网格取整
根据你的需求,要实现将数值向下取整到最近的GRID_SIZE倍数(如输入68、GRID_SIZE=20时返回60),可以用整数整除结合乘法的方式实现:
GRID_SIZE = 20 def snap_function(number): # 先整除得到倍数,再乘以网格大小实现向下取整 return (number // GRID_SIZE) * GRID_SIZE snapped_number = snap_function(68) print(snapped_number) # 输出:60
如果需要其他取整规则,也可以调整实现:
- 向上取整:比如输入68时返回80
def snap_up(number): return ((number + GRID_SIZE - 1) // GRID_SIZE) * GRID_SIZE - 四舍五入取整:比如输入68时返回60,输入72时返回80
def snap_round(number): return round(number / GRID_SIZE) * GRID_SIZE
内容的提问来源于stack exchange,提问作者Benjamin Ecker
相关产品推荐
相关产品推荐

