Java入門學習-使用Math,實現lg、平方、開方、round、floor、ceil的演算法。

gongjinsi發表於2017-05-04

一、lg

使用方法:Math.log10()

public class MathMethod {
    public static void main(String[] args) {
        int a=100;
        double b=100;
        float c=100;
        System.out.println("lg的實現:"+Math.log10(a));
        System.out.println("lg的實現:"+Math.log10(b));
        System.out.println("lg的實現:"+Math.log10(c));
    }
}
//輸出:
//lg的實現:2.0
//lg的實現:2.0
//lg的實現:2.0

然後Math.log10()返回的是double型的,所以當它賦值給int時,會報錯。
還有兩種log方法:
Math.log():求以2為底的對數
Math.log1p():求Ln(X+ 1)

二、平方

使用方法:Math.pow(x,y):求x的y次方
同樣也是返回double型別

public class MathMethod {
    public static void main(String[] args) {
        int a=100;
        System.out.println("100的平方:"+Math.pow(a,2));
    }
}
//輸出100的平方:10000.0

三、開方

使用方法:
1、Math.sqrt(a):求a的開平方
2、Math.pow(a,1.0/b):求a的開b次方。
假設是開3次方,這裡需要注意的是1.0/3.0,不能寫1/3哦。因為前者返回的是double型別,保留了小數,後者是int型,會自動取整(向下取0了)。
同樣也是返回double型別

public class MathMethod {
    public static void main(String[] args) {
        int a=100;
        System.out.println("100的開方(sqrt):"+Math.sqrt(a));
        System.out.println("100的開方(pow):"+Math.pow(a, 0.5));
    }
}
//輸出
//100的開方(sqrt):10.0
//100的開方(pow):10.0

四、round

四捨五入:演算法為Math.floor(x+0.5),即將原來的數字加上0.5後再向下取整(小數位<5就不加了),所以:
Math.round(98.5)的結果為99,
Math.round(-98.5)的結果為-98,
Math.round(-98.6)的結果為-99。

int java.lang.Math.round(float a)      //float的入參返回int型
long java.lang.Math.round(double a)    //double的入參返回long型

五、floor和ceil

我是這麼記憶的:floor是地板的意思,就是向下取整;ceil是天花板,就是向上取整。
double java.lang.Math.floor(double a)
double java.lang.Math.ceil(double a)

public class MathMethod {
    public static void main(String[] args) {
        int a=98;
        double b=-98.1;
        float c=98.8f;
        System.out.println("floor(98):"+Math.floor(a));
        System.out.println("floor(-98.1):"+Math.floor(b));
        System.out.println("floor(98.8f):"+Math.floor(c));
        System.out.println("ceil(98):"+Math.ceil(a));
        System.out.println("ceil(-98.1):"+Math.ceil(b));
        System.out.println("ceil(98.8f):"+Math.ceil(c));
    }
}
//輸出:
//floor(98):98.0
//floor(-98.1):-99.0
//floor(98.8f):98.0
//ceil(98):98.0
//ceil(-98.1):-98.0
//ceil(98.8f):99.0

需要注意的是:負數呼叫Math的各方法
round(-98.5):-98
round(-98.6):-99。
floor(-98.1):-99.0
ceil(-98.1):-98.0

相關文章