更新時(shí)間:2023-03-01 來(lái)源:黑馬程序員 瀏覽量:
IT就到黑馬程序員.gif)
關(guān)鍵字strictfp是strict float point的縮寫,意思是精確浮點(diǎn),主要作用是確保浮點(diǎn)數(shù)運(yùn)算的準(zhǔn)確性。JVM在執(zhí)行浮點(diǎn)數(shù)運(yùn)算時(shí),如果沒(méi)有指定strictfp關(guān)鍵字,此時(shí)計(jì)算結(jié)果可能會(huì)造成不精確,而且計(jì)算結(jié)果在不同平臺(tái)或廠商的虛擬機(jī)上會(huì)有不同的結(jié)果,導(dǎo)致意想不到的錯(cuò)誤。
當(dāng)我們一旦使用了strictfp類聲明一個(gè)類、接口或者方法,那么在所聲明的范圍內(nèi),Java編譯器以及運(yùn)行環(huán)境會(huì)完全依照IEEE二進(jìn)制浮點(diǎn)數(shù)算術(shù)標(biāo)準(zhǔn)(IEEE 754)來(lái)執(zhí)行,在這個(gè)關(guān)鍵字聲明的范圍內(nèi)所有浮點(diǎn)數(shù)的計(jì)算都是精確的。
還需要我們注意的是,在一個(gè)類被strictfp修飾時(shí),所有方法都會(huì)自動(dòng)被strictfp修飾。因此,strictfp可以保證浮點(diǎn)數(shù)運(yùn)算的精確性,而且在不同的硬件平臺(tái)上會(huì)有一致性的運(yùn)行結(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();
}
} 程序運(yùn)行結(jié)果為:
0.15861420949932098
1024首播|39歲程序員逆襲記:不被年齡定義,AI浪潮里再迎春天
2025-10-241024程序員節(jié)丨10年同行,致敬用代碼改變世界的你
2025-10-24【AI設(shè)計(jì)】北京143期畢業(yè)僅36天,全員拿下高薪offer!黑馬AI設(shè)計(jì)連續(xù)6期100%高薪就業(yè)
2025-09-19【跨境電商運(yùn)營(yíng)】深圳跨境電商運(yùn)營(yíng)畢業(yè)22個(gè)工作日,就業(yè)率91%+,最高薪資達(dá)13500元
2025-09-19【AI運(yùn)維】鄭州運(yùn)維1期就業(yè)班,畢業(yè)14個(gè)工作日,班級(jí)93%同學(xué)已拿到Offer, 一線均薪資 1W+
2025-09-19【AI鴻蒙開(kāi)發(fā)】上海校區(qū)AI鴻蒙開(kāi)發(fā)4期5期,距離畢業(yè)21天,就業(yè)率91%,平均薪資14046元
2025-09-19