关于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

 

你可能感兴趣的:(round)