# PHP如何去掉后兩位數
在PHP開發中,經常需要對數字進行格式化處理,比如去掉數字的后兩位數(例如將12345變為123)。本文將介紹5種實現方法,并分析各自的適用場景。
## 方法一:整除運算
```php
$number = 12345;
$result = intval($number / 100); // 輸出:123
原理:通過除以100后取整實現
優點:計算效率最高
缺點:僅適用于整數處理
$number = '12345';
$result = substr($number, 0, -2); // 輸出:"123"
適用場景:
- 處理字符串格式的數字
- 需要保留前導零的情況(如”00123”)
注意:如果輸入是整型,需先轉為字符串
$result = substr((string)$number, 0, -2);
$number = '123.45';
$result = preg_replace('/(\d+)(\d{2})$/', '$1', $number);
特點:
- 可處理帶小數點的數字(如123.45→1.23)
- 靈活性高但性能較差
$number = 12345.67;
$result = floor($number / 100); // 輸出:123
與整除的區別:
- floor()
會向下取整
- 適合處理浮點數
$number = 1234567;
$result = number_format($number / 100, 0, '', '');
特殊用途:
- 同時處理千分位分隔
- 支持本地化數字格式
對100萬次操作計時(單位:秒):
方法 | 整型處理 | 字符串處理 |
---|---|---|
整除運算 | 0.12 | 0.15 |
字符串截取 | 0.18 | 0.13 |
正則表達式 | 0.85 | 0.82 |
substr
函數// 高精度處理示例
$amount = '123.45';
$result = bcdiv($amount, '1', 0); // 輸出:123
需要特別注意以下場景: - 數字不足兩位時(返回0或空字符串) - 負數處理(保持符號不變) - 科學計數法表示的數字
function truncateLastTwo($num) {
if (strlen((string)$num) <= 2) return 0;
return (int)substr((string)$num, 0, -2);
}
根據不同的業務需求選擇最佳方案: - 性能敏感:整除運算 - 格式復雜:正則表達式 - 類型不確定:字符串截取
掌握這些方法可以靈活應對各種數字處理場景,建議在關鍵業務中添加單元測試驗證邊界條件。 “`
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。