关于Math类的round、floor、ceil三个方法
一、Math类这三个方法的简介
1、round():取最接近的值。
对于这个方法,查看源代码,其实现如下:
1 public static long round(double a) { 2 if (a != 0x1.fffffffffffffp-2) // greatest double value less than 0.5 3 return (long)floor(a + 0.5d); 4 else 5 return 0; 6 }
也就是将该值加0.5,然后取floor值。
2、floor():向下取整,或者说“向下舍入”,即取不大于x的最大整数(与“四舍五入”不同,下取整是直接去掉小数部分)。
3、round():向上取整计算,它返回的是大于或等于方法参数,并且与之最接近的整数。
二、示例
1 //取最接近的值,将该值加0.5,然后取floor 2 System.out.println(Math.round(11.7));// 12 11.7+0.5=12.3 floor(12.3)=12 3 System.out.println(Math.round(11.5));// 12 11.5+0.5=12 floor(12)=12 4 System.out.println(Math.round(11.3));// 11 11.3+0.5=11.8 floor(11.8)=11 5 System.out.println(Math.round(-11.7));// -12 -11.7+0.5=-11.2 floor(-11.2)=-12 6 System.out.println(Math.round(-11.3));// -11 -11.3+0.5=-10.8 floor(-10.8)=-11 7 System.out.println("========================="); 8 // 向下取整,或者说“向下舍入”,即取不大于x的最大整数(与“四舍五入”不同,下取整是直接去掉小数部分)。 9 System.out.println(Math.floor(11.7));//11 10 System.out.println(Math.floor(11.5));//11 11 System.out.println(Math.floor(11.3));//11 12 System.out.println(Math.floor(-11.7));//-12 13 System.out.println(Math.floor(-11.3));//-12 14 System.out.println("========================="); 15 // 向上取整计算,它返回的是大于或等于函数参数, //取最接近的值,将该值加0.5,然后取floor 16 System.out.println(Math.round(11.7));// 12 17 System.out.println(Math.round(11.5));// 12 18 System.out.println(Math.round(11.3));// 11 19 System.out.println(Math.round(-11.7));// -12 20 System.out.println(Math.round(-11.3));// -11 21 System.out.println("========================="); 22 // 向下取整,或者说“向下舍入”,即取不大于x的最大整数(与“四舍五入”不同,下取整是直接去掉小数部分)。 23 System.out.println(Math.floor(11.7));//11 24 System.out.println(Math.floor(11.5));//11 25 System.out.println(Math.floor(11.3));//11 26 System.out.println(Math.floor(-11.7));//-12 27 System.out.println(Math.floor(-11.3));//-12 28 System.out.println("========================="); 29 // 向上取整计算,它返回的是大于或等于函数参数,并且与之最接近的整数。 30 System.out.println(Math.ceil(11.7));//12 31 System.out.println(Math.ceil(11.5));//12 32 System.out.println(Math.ceil(11));//11 33 System.out.println(Math.ceil(-11.7));//-11 34 System.out.println(Math.ceil(-11.5));//-11并且与之最接近的整数。 35 System.out.println(Math.ceil(11.7));//12 36 System.out.println(Math.ceil(11.5));//12 37 System.out.println(Math.ceil(11));//11 38 System.out.println(Math.ceil(-11.7));//-11 39 System.out.println(Math.ceil(-11.5));//-11