11.1 数学运算
PHP提供了大量数学运算函数来实现长整型和浮点型的各种运算,其返回结果也只限于这两种数据类型。如果希望实现高精度的数学运算,就要使用BC高精度运算函数库。这里介绍常用的数学运算函数,并没有涉及BC函数库。
11.1.1 常见的数据运算函数
PHP中的常用数学运算函数有算术、幂指对函数、进位制函数、三角函数及反三角函数,下面介绍这些函数的使用语法。
PHP提供的用来求一个数的绝对值的函数是mixed abs(mixed num),其格式如下。
mixed abs(mixed num)
PHP提供了3个取整函数,它们不同处是floor()函数将实数向下取整,round()函数五舍六入取整,ceil()函数向上取整。这3个函数的格式如下。
int floor(floar num) int round(float num) int ceil(float number)
PHP提供了指数幂的运算函数,exp()函数是用于计算以e为底数,以expe为指数的幂运算。pow()函数用于计算以base为底数、以expe为指数的幂,格式如下。
float exp(float expe) float pow(folat base,float expe)
PHP提供了计算平方根的函数,sqrt()函数是用于求一个数的平方根,格式如下。
float sqrt(float num)
PHP提供了计算对数的函数,log()函数是计算以e为底的对数,log10()函数是计算以10为底的对数。其格式如下。
float log(float num) float log10(float num)
PHP提供了两个用于取得参数中的最大值和最小值的函数。函数所接受的参数应该有两个或多个,而且这些参数应当是数值或字符串,函数返回值的类型与最大元素或最小元素的类型一致。函数在进行比较时,如果参数全是字符串,则按ASCII码值进行比较;如果参数全是数值类型,则按数值大小进行比较。函数格式如下。
mixed max(mixed arg1,mixed arg2, …,mixed argn) mixed min(mixed arg1,mixed arg2, …,mixed argn)
PHP提供的进位制转换函数是base_convert(),这是PHP通用的进位制转换函数,其格式如下。
string base_convert(string number,int frombase,int tobase)
其中,参数number是由字符组成的数字,参数frombase是原进位制,而参数tobase是要转换成的进位制。函数返回转换后的结果,如果有错误,就会返回0。
PHP提供了3个用于三角形的计算函数,分别为正弦、余弦、正切函数,所接受的参数均为浮点型的弧度值,格式如下。
float sin(floart arg) float cos(floart arg) float tan(floart arg)
11.1.2 数据运算函数范例
这些数学运算函数的使用非常简单,代码11-1即演示了这些函数的用法。
代码11-1 常见数学函数的用法11-1.php
01 <?php 02 $num1 = -12; 03 $num2 = 147.258; 04 $num3 = 11.8059; 05 06 echo $num1." 的绝对值是:".abs($num1); 07 echo "<hr>"; 08 09 echo "ceil($num2) = ".ceil($num2); // 不小于$num2 的整数 10 echo "<br/>"; 11 echo "<br/>"; 12 echo "floor($num2) = ".floor($num2); // 不大于$num2 的整数 13 echo "<br/>"; 14 echo "<br/>"; 15 echo "round($num2) = ".round($num2); // 四舍五入不保留小数 16 echo "<hr>"; 17 18 echo "ceil($num3) = ".ceil($num3); // 不小于$num3 的整数 19 echo "<br/>"; 20 echo "<br/>"; 21 echo "floor($num3) = ".floor($num3); // 不大于$num3 的整数 22 echo "<br/>"; 23 echo "<br/>"; 24 echo "round($num3) = ".round($num3); // 四舍五入不保留小数 25 echo "<br/>"; 26 echo "<br/>"; 27 echo "round($num3,2) = ".round($num3,2); // 保留两位小数 28 echo "<br/>"; 29 echo "<br/>"; 30 echo "round($num3,1) = ".round($num3,1); // 保留一位小数 31 ?>
【代码解析】这段代码的最后部分使用函数round()获取浮点数的四舍五入结果。第27行的round($num3,2)指定了精度,这里的2表示四舍五入后保留两位小数,从小数点后第3位开始四舍五入。这段代码的执行结果如图11-1所示。
图11-1 常见的PHP数学运算函数