PHP的BC中Math函数的用法示例(代码)

PHP的BC中Math函数的用法示例(代码)

内容导读

收集整理的这篇技术教程文章主要介绍了PHP的BC中Math函数的用法示例(代码),小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3490字,纯文字阅读大概需要5分钟

内容图文

本篇文章给大家带来的内容是关于PHP的BC中Math函数的用法示例(代码),有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

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

代码示例

<?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.bcp.php

 * @return string

 */

private function p()

{



return bcp($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->p());// 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 />';

以上就是PHP的BC中Math函数的用法示例(代码)的详细内容,更多请关注Gxl网其它相关文章!

内容总结

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

内容备注

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


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com