將 "123.4500" → "123.45"、"100.000" → "100"、"0.000" → "0",保留必要小數位,移除無意義尾部零。
/**
* 去除多餘的尾部零
* @param mixed $s 數值或數值字串
* @return string 處理後字串
*/
function del0($s) {
$s = trim(strval($s));
// 純整數格式:123.0000 → 123
if (preg_match('#^-?\d+?\.0+$#', $s)) {
return preg_replace('#^(-?\d+?)\.0+$#', '$1', $s);
}
// 含小數格式:123.45000 → 123.45
if (preg_match('#^-?\d+?\.[0-9]+?0+$#', $s)) {
return preg_replace('#^(-?\d+?\.[0-9]+?)0+$#', '$1', $s);
}
return $s;
}
| 輸入 | 輸出 | 說明 |
|---|---|---|
del0("123.4500") | "123.45" | 保留有效小數 |
del0("100.000") | "100" | 小數全零 → 整數 |
del0("0.000") | "0" | 零值處理 |
del0("-12.3400") | "-12.34" | 負數支援 |
del0("123") | "123" | 無小數點不變 |
del0("123.456") | "123.456" | 無尾部零不變 |
^-?\d+?\.0+$:可選負號 + 數字 + 點 + 全零小數 → 替換為整數部分。^-?\d+?\.[0-9]+?0+$:可選負號 + 數字 + 點 + 數字(非貪婪) + 尾部零 → 保留非零小數部分。函數輕量、無依賴,可直接納入專案通用工具庫。