各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案各类知识收集,PHP技术分享与解决方案

Str Tom,为分享PHP技术和解决方案,贡献一份自己的力量!
收藏本站(不迷路),每天更新好文章!
当前位置:首页 > CMS教程 > PHP

PHPBCMath函数详解

管理员 2023-09-05
PHP
175

PHPBCMath函数详解

内容导读

收集整理的这篇技术教程文章主要介绍了PHPBCMath函数详解,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3314字,纯文字阅读大概需要5分钟

内容图文

用 PHP 计算的时候,会遇到高精度数带来的问题。好在 PHP 提供了 BC 系统函数。下面把常用的 BC 函数封装下,做了个简单的示例。

【推荐教程:php视频教程】

代码实例:

<?php/** * BC Math 函数示例 * Class BCCalculate */class BCCalculate{    private $leftNumber;// 左操作数    private $rightNumber;// 右操作数    public function __construct($leftNumber, $rightNumber)    {        $this->leftNumber = $leftNumber;        $this->rightNumber = $rightNumber;        $this->setScale();    }    /**     * 设置数字     * @param $name     * @param $value     * @return null     */    public function __set($name, $value)    {        if (!isset($this->$name)) {            return null;        }        $this->$name = $value;    }    /**     * 获取数字     * @param $name     * @return null     */    public function __get($name)    {        if (isset($this->$name)) {            return $this->$name;        } else {            return null;        }    }    /**     * 执行方法     * @param $functionName     * @param string $arguments     * @return null     */    public function __call($functionName, $arguments)    {        if (!method_exists($this, $functionName)) {            return null;        }        // 设置小数点位数需要参数,其他不需要        if (isset($arguments[0])) {            return $this->$functionName($arguments[0]);        }        return $this->$functionName();    }    /**     * 设置所有bc数学函数的默认小数点保留位数     * http://php.com/manual/zh/function.bcscale.php     * @param int $scale     */    private function setScale($scale = 2)    {        bcscale($scale);    }    /**     * 2个任意精度数字的加法计算     * http://php.com/manual/zh/function.bcadd.php     * @return string     */    private function add()    {        return bcadd($this->leftNumber, $this->rightNumber);    }    /**     * 2个任意精度数字的减法     * http://php.com/manual/zh/function.bcsub.php     * @return string     */    private function sub()    {        return bcsub($this->leftNumber, $this->rightNumber);    }    /**     * 2个任意精度数字乘法计算     * http://php.com/manual/zh/function.bcmul.php     * @return string     */    private function mul()    {        return bcmul($this->leftNumber, $this->rightNumber);    }    /**     * 2个任意精度的数字除法计算     * http://php.com/manual/zh/function.bcdiv.php     * @return string     */    private function div()    {        return bcdiv($this->leftNumber, $this->rightNumber);    }    /**     * 比较两个任意精度的数字     * 相等返回 0 ;左大于右返回 1 ;右大于左返回 -1     * http://php.com/manual/zh/function.bccomp.php     * @return int     */    private function comp()    {        return bccomp($this->leftNumber, $this->rightNumber);    }    /**     * 对一个任意精度数字取模     * http://php.com/manual/zh/function.bcmod.php     * @return string     */    private function mod()    {        return bcmod($this->leftNumber, $this->rightNumber);    }    /**     * 任意精度数字的乘方     * http://php.com/manual/zh/function.bcpow.php     * @return string     */    private function pow()    {        return bcpow($this->leftNumber, $this->rightNumber);    }    /**     * 任意精度数字的二次方根     * http://php.com/manual/zh/function.bcsqrt.php     * @return string     */    private function sqrt()    {        return bcsqrt($this->leftNumber);    }}$bc = new BCCalculate(3.45, 5.61);var_dump($bc->leftNumber);// 获取数字 float(3.45)echo '<br />';$bc->leftNumber = 24.08;var_dump($bc->leftNumber);// 修改数字 float(24.08)echo '<br />';var_dump($bc->add());// 注意返回值是字符串 string(5) "29.69"echo '<br />';$bc->setScale(3);// 修改小数点后位数var_dump($bc->sub());// string(6) "18.470"echo '<br />';var_dump($bc->mul());// string(7) "135.088"echo '<br />';var_dump($bc->div());// string(5) "4.292"echo '<br />';var_dump($bc->comp());// int(1)echo '<br />';$bc->leftNumber = 10;$bc->rightNumber = 4;var_dump($bc->mod());// string(1) "2"echo '<br />';var_dump($bc->pow());// string(5) "10000"echo '<br />';$bc->leftNumber = 16;var_dump($bc->sqrt());// string(5) "4.000" echo '<br />';

内容总结

以上是为您收集整理的PHPBCMath函数详解全部内容,希望文章能够帮你解决PHPBCMath函数详解所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

扫码关注

qrcode

QQ交谈

回顶部