首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 網頁程式設計 >> PHP 程式設計 >> PHP 相關知識

PHP 除法取整技巧:向下取整到指定倍數

     編輯:PHP 相關知識

在處理分頁、分組、價格區間等業務時,常需將數值「向下取整到最近的 N 的倍數」。例如:將 1234 向下取整到 500 的倍數 → 1000;將 999 向下取整到 100 的倍數 → 900。

核心公式

$result = intval(floor($value / $step)) * $step;

實例解析

$evalue = 1234;
$step = 500;
$father = intval(floor($evalue / $step)) * $step;
// 計算過程:1234 / 500 = 2.468 → floor = 2 → 2 * 500 = 1000
echo $father; // 輸出 1000

常見步長對照表

業務場景步長範例輸入輸出結果
分頁每頁 20 條204540
價格區間 100 元100389300
時間槽 15 分鐘900 (秒)50004500
網格對齊 50px50123100

進階封裝函數

function floorToMultiple($value, $step = 1) {
    if ($step <= 0) {
        throw new InvalidArgumentException('Step must be positive');
    }
    return (int)floor($value / $step) * $step;
}

// 使用
echo floorToMultiple(1234, 500); // 1000
echo floorToMultiple(999, 100);  // 900

注意事項

  • floor() 返回 float,大數值時可能有精度問題,intval() 二次轉換可保險。
  • 負數處理:floor(-1.5) = -2,符合數學定義(向下取整)。若需「向零取整」,改用 intval() 直接截斷。
  • PHP 7+ 可用 intdiv($value, $step) * $step 替代,純整數運算更高效且無精度風險。

總結

「除以步長 → 向下取整 → 乘回步長」是通用的向下對齊算法,簡潔高效,適用於所有需對齊到固定間距的數值處理場景。

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