首页 > 技术文章 > Java Math.floor()、Math.ceil()和Math.round()四舍五入的使用及区别

yyhimmy 2019-03-31 16:10 原文

Math.floor()、Math.ceil()和Math.round()都是对浮点数取整(floor和ceil返回不带小数的double,round返回long)

  • floor字面意思为地板,返回的是小于或等于该数值的最大的整数
  • ceil字面意思是天花板,返回的是大于或等于该值的最小的整数
  • round就是我们常见的四舍五入,不再多说

直接看下demo及运行结果

public class Test4 {
    public static void main(String[] args) {
        System.out.println("Math.floor(1.0) = " + Math.floor(1.0));
        System.out.println("Math.floor(1.4) = " + Math.floor(1.4));
        System.out.println("Math.floor(1.5) = " + Math.floor(1.5));
        System.out.println("Math.floor(1.6) = " + Math.floor(1.6));
        System.out.println("Math.floor(-1.0) = " + Math.floor(-1.0));
        System.out.println("Math.floor(-1.4) = " + Math.floor(-1.4));
        System.out.println("Math.floor(-1.5) = " + Math.floor(-1.5));
        System.out.println("Math.floor(-1.6) = " + Math.floor(-1.6));

        System.out.println("Math.ceil(1.0) = " + Math.ceil(1.0));
        System.out.println("Math.ceil(1.4) = " + Math.ceil(1.4));
        System.out.println("Math.ceil(1.5) = " + Math.ceil(1.5));
        System.out.println("Math.ceil(1.6) = " + Math.ceil(1.6));
        System.out.println("Math.ceil(-1.0) = " + Math.ceil(-1.0));
        System.out.println("Math.ceil(-1.4) = " + Math.ceil(-1.4));
        System.out.println("Math.ceil(-1.5) = " + Math.ceil(-1.5));
        System.out.println("Math.ceil(-1.6) = " + Math.ceil(-1.6));

        System.out.println("Math.round(1.0) = " + Math.round(1.0));
        System.out.println("Math.round(1.4) = " + Math.round(1.4));
        System.out.println("Math.round(1.5) = " + Math.round(1.5));
        System.out.println("Math.round(1.6) = " + Math.round(1.6));
        System.out.println("Math.round(-1.0) = " + Math.round(-1.0));
        System.out.println("Math.round(-1.4) = " + Math.round(-1.4));
        System.out.println("Math.round(-1.5) = " + Math.round(-1.5));
        System.out.println("Math.round(-1.6) = " + Math.round(-1.6));
    }
}

运行结果

Math.floor(1.0) = 1.0
Math.floor(1.4) = 1.0
Math.floor(1.5) = 1.0
Math.floor(1.6) = 1.0
Math.floor(-1.0) = -1.0
Math.floor(-1.4) = -2.0
Math.floor(-1.5) = -2.0
Math.floor(-1.6) = -2.0
Math.ceil(1.0) = 1.0
Math.ceil(1.4) = 2.0
Math.ceil(1.5) = 2.0
Math.ceil(1.6) = 2.0
Math.ceil(-1.0) = -1.0
Math.ceil(-1.4) = -1.0
Math.ceil(-1.5) = -1.0
Math.ceil(-1.6) = -1.0
Math.round(1.0) = 1
Math.round(1.4) = 1
Math.round(1.5) = 2
Math.round(1.6) = 2
Math.round(-1.0) = -1
Math.round(-1.4) = -1
Math.round(-1.5) = -1
Math.round(-1.6) = -2

需要注意的是正负值处理后的结果

比如

Math.floor(1.5) = 1.0,Math.floor(-1.5) = -2.0

Math.ceil(1.5) = 2.0,Math.ceil(-1.5) = -1.0

Math.round(1.5) = 2,Math.round(-1.5) = -1

推荐阅读