Strictfp -- Java關(guān)鍵字。strictfp, 即 strict float point (精確浮點(diǎn))。strictfp 關(guān)鍵字可應(yīng)用于類、接口或方法。使用strictfp關(guān)鍵字聲明一個(gè)方法時(shí),該方法中所有的float和double表達(dá)式都嚴(yán)格遵守FP-strict的限制,符合IEEE-754規(guī)范。當(dāng)對(duì)一個(gè)類或接口使用 strictfp 關(guān)鍵字時(shí),該類中的所有代碼,包括嵌套類型中的初始設(shè)定值和代碼,都將嚴(yán)格地進(jìn)行計(jì)算。嚴(yán)格約束意味著所有表達(dá)式的結(jié)果都必須是IEEE 754算法對(duì)操作數(shù)預(yù)期的結(jié)果,以單精度和雙精度格式表示。如果你想讓你的浮點(diǎn)運(yùn)算更加精確,而且不會(huì)因?yàn)椴煌挠布脚_(tái)所執(zhí)行的結(jié)果不一致的話,可以用關(guān)鍵字strictfp.
你可以將一個(gè)類、接口以及方法聲明為strictfp,但是不允許對(duì)接口中的方法以及構(gòu)造函數(shù)聲明strictfp關(guān)鍵字,例如下面的代碼:
1、合法的使用關(guān)鍵字strictfp
strictfp interface A {}
public strictfp class FpDemo1 {
strictfp void f() {}
}
2、錯(cuò)誤的使用方法
interface A {
strictfp void f();
}
public class FpDemo2 {
strictfp FpDemo2() {}
}