1. 程式人生 > >java中round()函式,floor()函式,ceil()函式的返回值

java中round()函式,floor()函式,ceil()函式的返回值

不太熟悉的是round()函式的一些邊緣值,比如Math.round(11.5)是多少,所以測試了一下。當前,之前對於向上取整和向下取整也有誤解地方,一直以為返回數字應該為int型別,但是看了原始碼才知道返回值是double型別。

測試程式碼:

/**
 * created by cxh on 17/7/27
 */

public class TempTest  {
    public static void main(String[] args) {
        /**
         * 測試Math.round(x)輸出數字;他表示“四捨五入”,演算法為Math.floor(x+0.5),即將原來的數字加上0.5後再向下取整
         * 如果x距離相鄰兩側的整數距離不一樣,則取距離近的那個數字;
         * 如果x距離相鄰兩側的整數距離一樣,則取真值大的那個數字(即為大於x的那個數字)
         */
        System.out.println(Math.round(-11.3));// -11
        System.out.println(Math.round(-11.5));//-11
        System.out.println(Math.round(-11.6));//-12
        System.out.println(Math.round(11.3));//11
        System.out.println(Math.round(11.5));//12
        System.out.println(Math.round(11.6));//12

        /**
         * 向下取整,返回的是一個double值
         */
        System.out.println(Math.floor(11.8));//11.0
        System.out.println(Math.floor(11.5));//11.0
        System.out.println(Math.floor(11.1));//11.0
        System.out.println(Math.floor(-11.8));//-12.0
        System.out.println(Math.floor(-11.5));//-12.0
        System.out.println(Math.floor(-11.1));//-12.0

        /**
         * 向上取整,返回的是一個double值
         */
        System.out.println(Math.ceil(11.8));//12.0
        System.out.println(Math.ceil(11.5));//12.0
        System.out.println(Math.ceil(11.1));//12.0
        System.out.println(Math.ceil(-11.8));//-11.0
        System.out.println(Math.ceil(-11.5));//-11.0
        System.out.println(Math.ceil(-11.1));//-11.0
    }
}