目錄
一、取整
二、向上取整
三、向下取整
四、四舍五入取整
五、四舍五入保留小數點
六、浮點數值
七、絕對值
八、生成隨機數
九、數字格式化(以千位分割)
十、對除法結果取整
十一、返回除法的余數
十二、是否為數字或數字字符串
十三、是否為整數
十四、是否為浮點數
十五、高精度數學函數
PHP對數字處理的相關函數和方法,持續更新中~
一、取整
$num = '1233.14';
echo "原始數值:{$num}<br/>";
$newNum = intval($num);
echo "結果:{$newNum}"; // 1233
二、向上取整
$num = '1233.14';
echo "原始數值:{$num}<br/>";
$newNum = ceil($num);
echo "結果:{$newNum}"; // 1234
三、向下取整
$num = '1233.14';
echo "原始數值:{$num}<br/>";
$newNum = floor($num);
echo "結果:{$newNum}"; // 1233
四、四舍五入取整
$num = '1233.54';
echo "原始數值:{$num}<br/>";
$newNum = round($num);
echo "結果:{$newNum}"; // 1234
五、四舍五入保留小數點
$num = '1233.14';
echo "原始數值:{$num}<br/>";
$newNum = round($num,1);
echo "結果:{$newNum}"; // 1233.1
六、浮點數值
$num = '4.7 monkeys';
echo "原始數值:{$num}<br/>";
$newNum = floatval($num);
echo "結果:{$newNum}"; // 4.7
七、絕對值
$num = '-12.14';
echo "原始數值:{$num}<br/>";
$newNum = abs($num);
echo "結果:{$newNum}"; // 12.14
八、生成隨機數
$newNum = rand();
echo "結果(隨機整數):{$newNum}<br/>"; // 535025733
$newNum = mt_rand(1,10);
echo "結果(1-10之間的隨機整數):{$newNum}"; // 7
九、數字格式化(以千位分割)
$num = '123342';
echo "原始數值:{$num}<br/>";
$newNum = number_format($num);
echo "結果:{$newNum}"; // 123,342
十、對除法結果取整
$x = '5.7';
$y = '1.3';
echo "被除數x:{$x}<br/>";
echo "除數y:{$y}<br/>";
$r = intdiv($x,$y);
echo "結果:{$r}"; // 5
5.7/1.3=4......0.5
十一、返回除法的浮點數余數
$x = '5.7';
$y = '1.3';
echo "被除數x:{$x}<br/>";
echo "除數y:{$y}<br/>";
$r = fmod($x,$y);
echo "余數:{$r}"; // 0.5
5.7/1.3=4......0.5
十二、是否為數字或數字字符串
$a = 123; $b = "123"; $c = "123abc";
$newa = is_numeric($a);
$newb = is_numeric($b);
$newc = is_numeric($c);
echo "{$a}:{$newa}<br/>"; // true
echo "{$b}:{$newb}<br/>"; // true
echo "{$c}:{$newc}<br/>"; // false
十三、是否為整數
$a = 123; $b = "123.3"; $c = "123abc";
$newa = is_int($a);
$newb = is_int($b);
$newc = is_int($c);
echo "{$a}:{$newa}<br/>"; // true
echo "{$b}:{$newb}<br/>"; // false
echo "{$c}:{$newc}<br/>"; // false
十四、是否為浮點數
$a = 123; $b = 123.3;
$newa = is_float($a);
$newb = is_float($b);
echo "{$a}:{$newa}<br/>"; // false
echo "{$b}:{$newb}<br/>"; // true
十五、高精度數學函數
以避免浮點數精度問題(如0.1 + 0.2 != 0.3)
$rs = bcadd('0.1', '0.2', 1);
echo "加法:0.1+0.2={$rs}<br/>"; // 0.3$rs = bcsub('5', '4.32', 2);
echo "減法:5-4.32={$rs}<br/>"; // 0.68$rs = bcmul('2.5', '3.5', 2);
echo "乘法:2.5+3.5={$rs}<br/>"; // 8.75$rs = bcdiv('10', '3', 5);
echo "除法:10+3={$rs}<br/>"; // 3.33333$rs = bcdiv('10', '3', 5);
echo "除法:10+3={$rs}<br/>"; // 3.33333$rs = bccomp('1.00001', '1', 3);
echo "比較:1.00001和1比較,結果:{$rs}<br/>"; // 0,因為精度只到3位。 0($num1=$num2)、1($num1>$num2)、-1($num1<$num2)