购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

3.12 数学函数

前面的示例中,保留指定数量的小数位时会直接舍弃多余的数据,并没有四舍五入,实际应用中,如果需要进行四舍五入操作,可以使用round()函数完成。下面的代码演示了round()函数的使用。

    <?php
    echo round(123.1,2),"<br>";
    echo round(123.456,2),"<br>";
    echo round(123.451,2);
    ?>

代码执行结果见图3-39。

图 3-39

如果需要获取数据的整数部分,可以将round()函数的第二个参数设置为0,这也是此参数的默认值,此时只会返回整数部分,小数部分四舍五入。

此外,相关操作的函数还包括:

● floor()函数,返回小于或等于参数的最大整数。

● ceil()函数,返回大于或等于参数的最小整数。

下面的代码演示了这两个函数的应用。

    <?php
    echo floor(11.9),"<br>";
    echo floor(-11.9),"<br>";
    echo ceil(11.9),"<br>";
    echo ceil(-11.9);
    ?>

代码执行结果见图3-40。

图 3-40

3.12.1 运算与统计函数

使用%运算符时,会得到整数相除后的余数,如果需要获取浮点数相除的余数,可以使用fmod()函数。下面的代码演示了%运算符与fmod()函数计算结果的不同。

    <?php
    $x = 11.9;
    $y = 3.1;
    echo $x % $y,"<br>";
    echo fmod($x, $y);
    ?>

代码执行会显示2和2.6。本例中,在使用%运算符时,会自动将两个运算数转换为整数后计算,计算的是11除以3的余数为2;fmod()函数会直接使用浮点数进行求余计算,即11.9中包含3个3.1以外,余数为2.6。

intdiv()函数,用于获取两个整数相除的结果,它会返回一个整数,如果参数不是整数会先转换为整数后进行计算,下面的代码演示了此函数与/运算符计算结果的区别。

    <?php
    $x = 11.9;
    $y = 3.1;
    echo $x / $y,"<br>";
    echo intdiv($x, $y);
    ?>

代码执行结果见图3-41。

图 3-41

本例中,使用/运算符计算的结果为浮点数,只有在能整除时才返回整数;而intdiv()函数会将两个参数都转换为整数后执行除法运算,取整数商。

下面是一些常用的计算函数:

● abs()函数,返回参数的绝对值。

● pow()函数,如pow(x,y)求x的y次方。

● min()函数,返回参数列表中的最小值。

● max()函数,返回参数列表中的最大值。

● sqrt()函数,求平方根,如参数为负数会返回NaN值。此外,如果对$x开$n次方,可以使用pow($x,1/$n)计算,如pow(27,1/3)返回3。

● exp()函数,计算e的指数。

● log()函数,自然对数。

● log10()函数,计算以10为底的对数。

● pi()函数,返回圆周率的值。

3.12.2 三角函数

PHP数学模块中常用的三角函数包括:

● acos()函数,求反余弦。

● acosh()函数,求反双曲余弦。

● asin()函数,求反正弦。

● asinh()函数,求反双曲正弦。

● atan()函数,求反正切。

● atan2()函数,求两个参数的反正切。

● atanh()函数,求反双曲正切。

● hypot()函数,根据直角三角形中两个直角边的长度计算其斜边长度,如hypot(3,4)返回5。

● cos()函数,求余弦。

● cosh()函数,求双曲余弦。

● deg2rad()函数,将角度转换为弧度,如deg2rad(90)返回1.5707963267949,即pi()/2的值。

● rad2deg()函数,将弧度转换为相应的角度,如rad2deg(pi())返回180。

● sin()函数,求正弦。

● sinh()函数,求双曲正弦。

● tan()函数,求正切。

● tanh()函数,求双曲正切。

3.12.3 随机数

mt_rand()和rand()函数,产生一个随机整数,其中,mt_rand()函数的执行效率更高。如果需要指定随机数的范围,可以使用两个参数,参数一为可能的最小值,参数二为可能的最大值,如下面的代码演示了mt_rand()函数的使用。

执行代码会随机显示10个1到9的整数,可以刷新页面来观察运行结果。

如果不指定随机数的范围,那么,它的范围将是0到mt_getrandmax()函数返回值之间;其中,mt_getrandmax()函数返回的是平台所支持的最大的随机整数值。

下面的代码(/lib/cf/tRnd.php)定义了tRnd类,用于生成一些常用的随机字符串。

可以参考如下代码生成随机字符。

    <?php
    require_once $_SERVER["DOCUMENT_ROOT"]."/lib/cf/tRnd.php";
    use cf\tRnd;

    echo tRnd::getUpper(),"<br>";
    echo tRnd::getLower(),"<br>";
    echo tRnd::getStr(8);
    ?>

执行代码会随机显示一个大写字母和一个小写字母,以及一个包含了8个随机字符的字符串。 WeT4hTES8VSS2F18ysjWHq1empJjTE+KnV1ov8jPU2gcXvsaChNpAxKqD+oYaw1t

点击中间区域
呼出菜单
上一章
目录
下一章
×