为返回一定范围内中心值的方法创建逻辑

时间:2018-06-24 12:37:35

标签: java c# math logic

我需要一种按以下方式工作的方法:如果我插入介于-10和10之间的任何值(如-3、5甚至0),则返回0;如果我插入介于10和30之间的数字,则将返回20。间隔始终为20,并且适用于任何数量的负数或正数。

TeddHope提示:

 public class MyClass {
  public static void main(String args[]) {

   System.out.println(returnOfMidle(3));     //returns 0 ok
   System.out.println(returnOfMidle(29));    // returns 1, must be 20
   System.out.println(returnOfMidle(-19));  //  returns 0, must be -10 

}
public static int returnOfMidle(int number){
    return (number+10)/20;
}
}

1 个答案:

答案 0 :(得分:2)

这似乎符合要求

int CenterValue(int value)
{
    int sign = value > 0 : 1 : -1;
    return (Math.Abs(value) + 9) / 20 * 20 * sign;
}

更简单:

(int)Math.Round(value / 20.0) * 20