Java Math類の方法紹介の史上最も完備している

52320 ワード

Java Math類の方法紹介の史上最も完備している
開発にはJava Mathクラスの手法が用いられているため,温習記録は以下の通りである.
		/**
         *   
         */
        System.out.println("------>" + Math.E);//2.718281828459045
        System.out.println("------>" + Math.PI);//3.141592653589793

        /**
         * Math.abs()     
         */
        System.out.println("------>" + Math.abs(-3));//3

        /**
         *           
         * cos   
         * sin   
         * tan   
         * acos    
         * asin    
         * atan    
         * atan2(y,x)   (x,y) x   
         * cosh        
         * sinh      
         * tanh      
         */
        System.out.println("------>" + Math.acos(1));
        System.out.println("------>" + Math.acos(-1));

        /**
         * Math.cbrt()    
         */
        System.out.println("------>" + Math.cbrt(-1));//-1.0
        System.out.println("------>" + Math.cbrt(1));//1.0
        System.out.println("------>" + Math.cbrt(0.5));//0.7937005259840998
        System.out.println("------>" + Math.cbrt(5));//1.709975946676697

        /**
         * Math.sqrt(x)   
         */
        System.out.println("------>" + Math.sqrt(4.0));//2.0

        /**
         * Math.hypot(x,y) sqrt(x*x+y*y)          sqrt((x1-x2)^2+(y1-y2)^2)
         */
        System.out.println("------>" + Math.hypot(3.0, 4.0));//5.0

        /**
         * ceil   ,    ,     
         */
        System.out.println("------1>" + Math.ceil(7.2));//8.0
        System.out.println("------2>" + Math.ceil(7.5));//8.0
        System.out.println("------3>" + Math.ceil(7.6));//8.0
        System.out.println("------4>" + Math.ceil(-7.2));//-7.0
        System.out.println("------5>" + Math.ceil(-7.5));//-7.0
        System.out.println("------6>" + Math.ceil(-7.6));//-7.0

        /**
         * floor  ,    ,     
         */
        System.out.println("------1>" + Math.floor(7.2));//7.0
        System.out.println("------2>" + Math.floor(7.5));//7.0
        System.out.println("------3>" + Math.floor(7.6));//7.0
        System.out.println("------4>" + Math.floor(-7.2));//-8.0
        System.out.println("------5>" + Math.floor(-7.5));//-8.0
        System.out.println("------6>" + Math.floor(-7.6));//-8.0

        /**
         * Math.cosh()   double        。x            (ex + e-x)/2,   e     
         */
        System.out.println("------>" + Math.cosh(1));//1.543080634815244
        System.out.println("------>" + Math.cosh(0));//1.0

        /**
         * exp(x)   e^x  
         * expm1(x)   e^x - 1  
         * pow(x,y)   x^y  
         *             double 
         */
        System.out.println("------>" + Math.exp(2));//7.38905609893065
        System.out.println("------>" + Math.expm1(2));//6.38905609893065
        System.out.println("------>" + Math.pow(2.0, 3.0));//8.0


        /**
         *   
         * Math.log(a) a     (   e)
         * Math.log10(a) a     10   
         * Math.log1p(a) a+1     
         *       ,          ,          double      double   
         */
        System.out.println("------1>" + Math.log(Math.E));//1.0
        System.out.println("------2>" + Math.log10(10));//1.0
        System.out.println("------3>" + Math.log1p(Math.E - 1.0));//1.0

        /**
         * Math.max()    
         * Math.min()    
         */
        System.out.println("------1>" + Math.max(1, 2));//2
        System.out.println("------2>" + Math.min(1, -2));//-2


        /**
         * Math.nextAfter()                      。
         */
        System.out.println("------1>" + Math.nextAfter(-1, 2));//-0.99999994
        System.out.println("------2>" + Math.nextAfter(1, 2));//1.0000001

        /**
         * Math.nextUp()             d    。
         */
        System.out.println("------>" + Math.nextUp(1));//1.0000001
        System.out.println("------>" + Math.nextUp(-1));//-0.99999994

        /**
         * Math.Random()          double ,      0.0   1.0,      [0.0,1.0)       ,
         *              ,     (  )    
         */
        System.out.println("------>" + Math.random());//     [0.0,1.0)    

        /**
         * Math.rint(x):x          ,  x          ,            。
         */
        System.out.println("------>" + Math.rint(3.5));//4.0
        System.out.println("------>" + Math.rint(4.5));//4.0

        System.out.println("------>" + Math.rint(3.1));//3.0
        System.out.println("------>" + Math.rint(4.1));//4.0

        System.out.println("------>" + Math.rint(3.7));//4.0
        System.out.println("------>" + Math.rint(4.7));//5.0
        /**
         * Math.round(x):  Math.floor(x+0.5), “    ” 。
         */
        System.out.println("------>" + Math.round(3.5));//4
        System.out.println("------>" + Math.round(4.5));//5

        System.out.println("------>" + Math.round(3.1));//3
        System.out.println("------>" + Math.round(4.7));//5


        /**
         * Math.scalb(double d, int scaleFactor),   f × 2scaleFactor,                     float
         *         
         *    d          d        tatic double   nextUp(double d)
         */
        System.out.println("------1>" + Math.scalb(1.5d, 6));//96

        /**
         * Math.scalb(float f, int scaleFactor)
         *    f          f        tatic float    nextUp(float f)
         *                            
         */
        System.out.println("------2>" + Math.scalb(1.5f, 6));//96

        /**
         * Math.signum      int      (       ,   -1;       ,    0;       ,   1)。
         */
        System.out.println("------1>" + Math.signum(10));//1.0
        System.out.println("------2>" + Math.signum(-10));//-1.0
        System.out.println("------3>" + Math.signum(0));//0.0

        /**
         * Math.toDegrees()       
         */
        System.out.println("------3>" + Math.toDegrees(1.57));//89.95437383553926

        /**
         * Math.toRadians()        
         */
        System.out.println("------3>" + Math.toRadians(90));//1.5707963267948966

        /**
         * Math.ulp()
         *         ulp(unit in the last place or unit of least precision (ULP))
         *                              ;
         *    2.0 3.0       ,        ,           ,
         *                double  float,               (        )。
         *
         *      ulp,   float 2.0 3.0   8,388,609  ,   2.0 3.0     ulp  8,388,609/1.0   0.0000001。
         *
         *             double float                    
         * public static double nextAfter(float start, float direction)
         * public static double nextAfter(double start, double direction)
         */

        /**
         * java8 Math    
         */
        if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) {
            /**
             * Math.addExact()  ,          ,     。
             */
            System.out.println("------>" + Math.addExact(1, 2));//3

            /**
             * Math.substractExact()          ,       ArithmeticException
             */
            System.out.println("------>" + Math.subtractExact(100, 50));//50

            /**
             * Math.incrementExact()           ,       ArithmeticException
             */
            System.out.println("------>" + Math.incrementExact(100));//101

            /**
             * Math.decrementExact()           ,       ArithmeticException
             */
            System.out.println("------>" + Math.decrementExact(100));//99

            /**
             * Math.multiplyExact()            ,       ArithmeticException
             */
            System.out.println("------>" + Math.multiplyExact(100, 5));//500

            /**
             * Math.negateExact()          ,       ArithmeticException
             */
            System.out.println("------>" + Math.negateExact(100));//-100

            /**
             * Math.floorDiv(1,2)           ,        floor  ,           :
             */
            System.out.println("------>" + Math.floorDiv(7, 3));//2
            System.out.println("------>" + Math.floorDiv(-7, 3));//-3

            /**
             * Math.floorMod()
             * 1、         , floorMod %          。
             * 2、         ,    %     。
             */
            //         , floorMod %          。
            System.out.println("------1>" + Math.floorMod(4, 3));//1
            System.out.println("------2>" + (4 % 3));//1

            //         ,    %     。
            System.out.println("------3>" + Math.floorMod(4, -3));//-2
            System.out.println("------4>" + (4 % -3));//1

            System.out.println("------5>" + Math.floorMod(-4, 3));//2
            System.out.println("------6>" + (-4 % 3));//-1

            System.out.println("------7>" + Math.floorMod(-4, -3));//-1
            System.out.println("------8>" + (-4 % -3));//-1

            /**
             * Math.toIntExact(),long int
             */
            System.out.println("------1>" + Math.toIntExact(1));

            /**
             * Math.nextDown()             f    。
             */
            System.out.println("------>" + Math.nextDown(1));//0.99999994
            System.out.println("------>" + Math.nextDown(-1));//-1.0000001
        }


もしあなたに役に立つならば、面倒な評論は支持を称賛して、ありがとうございます!
ps:間違いがあれば、教えてください