首頁常見問題正文

strictfp有什么作用?

更新時間:2023-03-01 來源:黑馬程序員 瀏覽量:

IT培訓(xùn)班

  關(guān)鍵字strictfp是strict float point的縮寫,意思是精確浮點,主要作用是確保浮點數(shù)運算的準(zhǔn)確性。JVM在執(zhí)行浮點數(shù)運算時,如果沒有指定strictfp關(guān)鍵字,此時計算結(jié)果可能會造成不精確,而且計算結(jié)果在不同平臺或廠商的虛擬機上會有不同的結(jié)果,導(dǎo)致意想不到的錯誤。

  當(dāng)我們一旦使用了strictfp類聲明一個類、接口或者方法,那么在所聲明的范圍內(nèi),Java編譯器以及運行環(huán)境會完全依照IEEE二進制浮點數(shù)算術(shù)標(biāo)準(zhǔn)(IEEE 754)來執(zhí)行,在這個關(guān)鍵字聲明的范圍內(nèi)所有浮點數(shù)的計算都是精確的。

  還需要我們注意的是,在一個類被strictfp修飾時,所有方法都會自動被strictfp修飾。因此,strictfp可以保證浮點數(shù)運算的精確性,而且在不同的硬件平臺上會有一致性的運行結(jié)果。下列給出了strictfp修飾類的使用方法:

public strictfp class Test{
    public static void testStrictfp(){
        float f = 0.12365f;
        double d = 0.03496421d;
        double sum = f + d;
        System.out.println(sum);
    }
    public static void main(String[] args){
        testStrictfp();
    }
}

  程序運行結(jié)果為:

0.15861420949932098


分享到:
在線咨詢 我要報名
和我們在線交談!