目录
一、取整
二、向上取整
三、向下取整
四、四舍五入取整
五、四舍五入保留小数点
六、浮点数值
七、绝对值
八、生成随机数
九、数字格式化(以千位分割)
十、对除法结果取整
十一、返回除法的余数
十二、是否为数字或数字字符串
十三、是否为整数
十四、是否为浮点数
十五、高精度数学函数
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)