首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> Java 綜合教學

Java 數學取整完全指南:Math.floor、Math.ceil、Math.round 差異詳解

     編輯:Java 綜合教學

Java 中常用的三種取整方法

Java java.lang.Math 類提供了三個核心取整方法,行為差異較大,尤其在負數處理上容易踩坑。本文通過完整案例表格詳細對比。

1. Math.floor — 向下取整(向負無窮大方向)

返回小於或等於參數的最大整數值(double 類型)。

輸入結果說明
2.02.0整數不變
2.12.0捨去小數部分
2.52.0捨去小數部分
2.92.0捨去小數部分
-2.0-2.0整數不變
-2.1-3.0向更小方向(-3 < -2.1)
-2.5-3.0向更小方向
-2.9-3.0向更小方向

2. Math.ceil — 向上取整(向正無窮大方向)

返回大於或等於參數的最小整數值(double 類型)。

輸入結果說明
2.02.0整數不變
2.13.0進位到下一個整數
2.53.0進位
2.93.0進位
-2.0-2.0整數不變
-2.1-2.0向更大方向(-2 > -2.1)
-2.5-2.0向更大方向
-2.9-2.0向更大方向

3. Math.round — 四捨五入(最近整數)

返回最接近參數的 long/int 值。正數加 0.5 後向下取整,負數減 0.5 後向上取整。

輸入結果說明
2.02
2.12
2.53.5 向上
2.93
-2.0-2
-2.1-2
-2.5-2-.5 向上(朝向零)
-2.9-3

核心差異總結

  • floor:永遠向「更小」方向(負無窮)
  • ceil:永遠向「更大」方向(正無窮)
  • round:四捨五入,0.5 向正無窮方向(正數變大、負數變小/向零)

實用建議

  • 分頁計算總頁數:(total + size - 1) / size 或 Math.ceil((double)total / size)
  • 負數截斷取整:優先用 Math.floor 或整數除法
  • 金融計算避免浮點數,改用 BigDecimal 並指定 RoundingMode

掌握三者在正負數邊界上的行為差異,能有效避免業務邏輯中的取整錯誤。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved