基本问题,但我似乎无法解决:
我有旋转的东西,我想将其停在一定范围内。
因此,如果旋转度(两倍)在一定范围内,我希望它返回false。
例
旋转= 182,在180处停止,精度为2。因此应停止。
旋转= 182,在180处停止,精度为1。因此不应停止。
目前我有:
/**
*
* @return
* number = 100, current = 105, accuracy = 10
* Example
* 105c / 100n = 1.05..
* 10c / 100n = 0.1..
*/
public boolean stopAtRange(double number, double current, double accuracy)
{
if(current / number) + accuracy)
{
return true;
}
return false;
}
最佳答案
在Java中,if
仅采用布尔值,并且整数值不会转换为布尔值。
为了实现您想要的,您的方法应该像这样
public boolean stopAtRange(double number, double current, double accuracy)
{
if( Math.abs(current - number) <= accuracy)
{
return true;
}
return false;
}
如果
current
大于或小于number
,则两者均可使用。如果只想在current
大于或等于number
时停止,则应删除Math.abs
我还建议使用此版本:
public static boolean stopAtRange(double number, double current, double accuracy) {
return Math.abs(current - number) <= accuracy;
}
因为它更紧凑,并且针对性能进行了优化。
关于java - 将数字停在一定范围内,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23406445/