我需要确保传递给我的一个类的值适合单元格为4px
的网格所以如果16过去了
16%4==0 //this is fine
然而
17%4==1 //not ok
我需要程序将值转换为适合网格,所以在最后一种情况下,17将转换为16(向下舍入),如果它是19,它将转换为20(向上舍入)等。< / p>
那么有一个库会为我做这个吗?
答案 0 :(得分:1)
这对你有用吗?
val = val - (val % 4)
现在有了舍入
val = Round(val / 4) * 4
答案 1 :(得分:1)
我认为这可以做你想要的,包括整理部分。
int gridVal = (((int) val + 2) / 4) * 4
编辑完整性:
如果您希望将18舍入,请使用此语句。
int gridVal = (((int) val + 1) / 4) * 4
如果你想处理负值,那么你需要一个条件。
int gridVal = ((val >= 0 ? (int) val + 2 : (int) val - 2) / 4) * 4
编辑变量(偶数)网格大小:
int halfGrid = gridSize / 2;
int gridVal = ((val >= 0 ? (int) val + halfGrid : (int) val - halfGrid) / gridSize) * gridSize;
答案 2 :(得分:1)
尝试类似
的内容除以数字,然后舍入并乘以数字。
像
这样的东西val = Round(val / 4) * 4