java · 2019-10-05 1

Java中Math.ceil()、Math.floor()、Math.round()的区别

1、Math.ceil()

ceil表示“天花板”,向上取整;相当于水平数轴,向左取整

Math.ceil(2.6);     //3.0   ceil天花板 水平数轴向左取整
Math.ceil(-2.6);    //-2.0   ceil天花板 水平数轴向左取整

2、Math.floor()

floor表示“地板”,向下取整;相当于水平数轴,向右取整

Math.floor(2.6);    //2.0   floor地板 水平数轴向右取整
Math.floor(-2.6);   //-3.0   floor地板 水平数轴向右取整

3、Math.round()

round表示“四舍五入”,算法Math.floor(x+0.5)

Math.round(2.4);    //2     Math.floor(2.9)
Math.round(-2.4);   //-2    Math.floor(-1.9)
Math.round(2.5);    //3     Math.floor(3.0)
Math.round(-2.5);   //-2    Math.floor(-2.0)
Math.round(2.6);    //3     Math.floor(3.1)
Math.round(-2.6);   //-3    Math.floor(-2.1)

测试

public class MathDemo {
    public static void main(String[] args) {
        //  3   2   0   -2  -3  看成一条水平数轴的话,floor向右取整,ceil向左取整
        System.out.println(Math.ceil(2.6));     //3.0   ceil天花板 水平数轴向左取整
        System.out.println(Math.ceil(-2.6));     //-2.0   ceil天花板 水平数轴向左取整
        System.out.println(Math.floor(2.6));    //2.0   floor地板 水平数轴向右取整
        System.out.println(Math.floor(-2.6));    //-3.0   floor地板 水平数轴向右取整
        System.out.println("- - - - -");
        //  3   2   0   -2  -3  Math.floor(x+0.5)
        System.out.println(Math.round(2.4));    //2     Math.floor(2.9)
        System.out.println(Math.round(-2.4));   //-2    Math.floor(-1.9)
        System.out.println(Math.round(2.5));    //3     Math.floor(3.0)
        System.out.println(Math.round(-2.5));   //-2    Math.floor(-2.0)
        System.out.println(Math.round(2.6));    //3     Math.floor(3.1)
        System.out.println(Math.round(-2.6));   //-3    Math.floor(-2.1)
    }
}

结果: