Java Math.round函數詳解
1.代碼如下:
public class TestMathRound { public static void main(String[] args) { System.out.println("小數點後第一位=5"); System.out.println("正數:Math.round(11.5)=" + Math.round(11.5));//12 System.out.println("負數:Math.round(-11.5)=" + Math.round(-11.5));//-11 System.out.println(); System.out.println("小數點後第一位<5"); System.out.println("正數:Math.round(11.46)=" + Math.round(11.46));//11 System.out.println("負數:Math.round(-11.46)=" + Math.round(-11.46));//-11 System.out.println(); System.out.println("小數點後第一位>5"); System.out.println("正數:Math.round(11.68)=" + Math.round(11.68));//12 System.out.println("負數:Math.round(-11.68)=" + Math.round(-11.68));//-12 } }
2.結果如下,可以自己運行。
3.本來以為是四舍五入,取最靠近的整數,查瞭網上說有四舍六入五成雙,最後還不如看源碼。源碼如下:
public static long round(double a) { if (a != 0x1.fffffffffffffp-2) // greatest double value less than 0.5 return (long)floor(a + 0.5d); else return 0; }
我們看到round函數會默認加0.5,之後調用floor函數,然後返回。floor函數可以理解為向下取整。
4.綜上,Math.round函數是默認加上0.5之後,向下取整。
到此這篇關於Java Math.round函數詳解的文章就介紹到這瞭,更多相關Java Math.round函數內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!
推薦閱讀:
- Java基礎之Math和Random類知識總結
- 深入瞭解Java核心類庫–Math類
- Java Float 保留小數位精度的實現
- Java精確計算BigDecimal類詳解
- Java BigDecimal案例詳解