Rounding up a number to nearest multiple of 5

后端 未结 21 2022
感动是毒
感动是毒 2020-11-27 15:24

Does anyone know how to round up a number to its nearest multiple of 5? I found an algorithm to round it to the nearest multiple of 10 but I can\'t find this one.

T

21条回答
  •  一个人的身影
    2020-11-27 16:23

    I think I have it, thanks to Amir

    double round( double num, int multipleOf) {
      return Math.floor((num + multipleOf/2) / multipleOf) * multipleOf;
    }
    

    Here's the code I ran

    class Round {
        public static void main(String[] args){
            System.out.println("3.5 round to 5: " + Round.round(3.5, 5));
            System.out.println("12 round to 6: " + Round.round(12, 6));
            System.out.println("11 round to 7: "+ Round.round(11, 7));
            System.out.println("5 round to 2: " + Round.round(5, 2));
            System.out.println("6.2 round to 2: " + Round.round(6.2, 2));
        }
    
        public static double round(double num, int multipleOf) {
            return Math.floor((num +  (double)multipleOf / 2) / multipleOf) * multipleOf;
        }
    }
    

    And here's the output

    3.5 round to 5: 5.0
    12 round to 6: 12.0
    11 round to 7: 14.0
    5 round to 2: 6.0
    6.2 round to 2: 6.0
    

提交回复
热议问题