1. 程式人生 > >java 對浮點數取整方法floor,…

java 對浮點數取整方法floor,…

在java中的Math類中有三種方法對浮點數取整 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 很簡單的辦法。 這個取整有一個很好的應用 例如:1.736向下取整保留兩位小數,應該如何辦? 一種直接辦法就是用BigDecimal.setScale().doubleValue()的方法(具體如何做看我上一篇日誌java保留兩位小數),這樣子比較麻煩,因為用到大浮點數了,也會出現7-8位小數突然多出來一個1。 那有沒有簡單辦法? 當然,把1.736*100 = 173.6 然後 Math.floor(173.6) = 173 然後再 173/100 = 1.73這樣子就可以了。 或者: 1.734向上保留兩位小數,精確到0.05,這個時候用大浮點數也要先乘以2再保留,然後再除以2. 但我們完全可以直接乘以20,然後Math.ceil(1.734*20)/20這樣子就是最終結果了。。