我意识到这不是一个很好的标题,所以我会尝试更彻底地解释。
基本上,我有一个仅少量变化的双精度,称为clusterSize
.然后,我有第二个双精度,地图上的纬度或经度,称为coord
。我想将coord
四舍五入到可被clusterSize
整除的最接近值,但我们还没有找到任何简单的方法来做到这一点。
尝试过的代码:
private double roundDown(double coord, double clusterSize) {
return clusterSize * Math.floor(coord / clusterSize);
}
和:
private double roundDown(double coord, double clusterSize) {
return Math.floor((coord + clusterSize/2) / clusterSize) * clusterSize;
}
两者都没有产生我想要的结果。如果您能指出一个可以轻松完成此任务的库或函数,那就太好了。谢谢!
据我了解,这是您要查找的内容:
private double roundDown(double coord, double clusterSize) {
return coord - (coord % clusterSize);
}
解释:
模组运算符 (a%b
( 返回 a 的余数除以 b。通过代入余数,我们保证了可分性。
测试运行:
coord clusterSize => result
1.1 .2 => 1.0
1.12 .11 => 1.1
注意:请记住正确处理coord < clusterSize