更新時間:2020-07-24 15:52:59 來源:動力節(jié)點 瀏覽5163次
在java中的Math類中有三種方法對浮點數(shù)取整
floor//向下取整
ceil//向上取整
round//四舍五入取整
例如:
Math.floor(1.3);//1
Math.floor(1.7);//1
Math.ceil(1.3);//2
Math.ceil(1.7);//2
Math.round(1.3);//1
Math.round(1.7);//2
很簡單的辦法。
這個取整有一個很好的應(yīng)用
例如:1.736向下取整保留兩位小數(shù),應(yīng)該如何辦?
一種直接辦法就是用BigDecimal.setScale().doubleValue()的方法(具體如何做看我上一篇日志java保留兩位小數(shù)),這樣子比較麻煩,因為用到大浮點數(shù)了,也會出現(xiàn)7-8位小數(shù)突然多出來一個1。
那有沒有簡單辦法?
當(dāng)然,把1.736*100=173.6
然后Math.floor(173.6)=173
然后再173/100=1.73這樣子就可以了。
或者:1.734向上保留兩位小數(shù),精確到0.05,這個時候用大浮點數(shù)也要先乘以2再保留,然后再除以2.
但我們完全可以直接乘以20,然后Math.ceil(1.734*20)/20這樣子就是最終結(jié)果了。。
以上就是動力節(jié)點java培訓(xùn)機構(gòu)的小編針對“Java對浮點數(shù)取整方法floor”的內(nèi)容進行的回答,希望對大家有所幫助,如有疑問,請在線咨詢,有專業(yè)老師隨時為你服務(wù)。
相關(guān)閱讀
初級 202925
初級 203221
初級 202629
初級 203743