Math.ceil和Math.rint方法返回相同的值

时间:2015-12-09 05:41:14

标签: java

Math.rint()Math.ceil()方法返回相同的值,有人可以解释原因吗? 这些方法有什么区别?何时使用Math.rint()以及在何处使用Math.ceil()

public class BasicMathDemo {

    public static void main(String[] args) {

        double b = 43.74;
        System.out.println("The rint of "+ b +" is : "+Math.rint(b));
        System.out.println("The ceiling of " + b +" is: "+ Math.ceil(b));

    }
}

输出是:

The rint of 43.74 is : 44.0
The ceiling of 43.74 is: 44.0

3 个答案:

答案 0 :(得分:2)

它们返回相同的值,因为它们的设计方式适用于给定的示例。

rint

  

"返回与参数和值最接近的double值   等于数学整数。"

ceil

  

"返回最小(最接近负无穷大)双值   大于或等于参数且等于a   数学整数。"

here

所以,在这两种情况下,他们都会围捕。如果你想看到它们返回不同值的示例,请使用43.4 - 例如。

您可以在他们将给您所需结果的地方使用它们。天花板只会给你一个大于或等于传递值的数字。另一方面,可以使用rint传递的数字少于数字。

答案 1 :(得分:2)

Math.rint()将您的号码四舍五入到最接近的整数。 See

Math.ceil()将您的号码四舍五入到最接近的高整数。 See

Math.floor()将您的号码向下舍入到最接近的较低整数。 See

示例:

float number = 3.38;
double rint = Math.rint(number); // This will return 3
double ceil = Math.ceil(number); // This will return 4
double floor = Math.floor(number); // This will return 3

答案 2 :(得分:0)

假设一个数组[1.1,2.9] ceil给2,3 flo0r给出1,2 林特给出1,3