PHP BC Math 函数详解
用 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.net/manual/zh/function.bcscale.php * @param int $scale */ private function setScale($scale = 2) { bcscale($scale); } /** * 2个任意精度数字的加法计算 * http://php.net/manual/zh/function.bcadd.php * @return string */ private function add() { return bcadd($this->leftNumber, $this->rightNumber); } /** * 2个任意精度数字的减法 * http://php.net/manual/zh/function.bcsub.php * @return string */ private function sub() { return bcsub($this->leftNumber, $this->rightNumber); } /** * 2个任意精度数字乘法计算 * http://php.net/manual/zh/function.bcmul.php * @return string */ private function mul() { return bcmul($this->leftNumber, $this->rightNumber); } /** * 2个任意精度的数字除法计算 * http://php.net/manual/zh/function.bcdiv.php * @return string */ private function div() { return bcdiv($this->leftNumber, $this->rightNumber); } /** * 比较两个任意精度的数字 * 相等返回 0 ;左大于右返回 1 ;右大于左返回 -1 * http://php.net/manual/zh/function.bccomp.php * @return int */ private function comp() { return bccomp($this->leftNumber, $this->rightNumber); } /** * 对一个任意精度数字取模 * http://php.net/manual/zh/function.bcmod.php * @return string */ private function mod() { return bcmod($this->leftNumber, $this->rightNumber); } /** * 任意精度数字的乘方 * http://php.net/manual/zh/function.bcpow.php * @return string */ private function pow() { return bcpow($this->leftNumber, $this->rightNumber); } /** * 任意精度数字的二次方根 * http://php.net/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 />';

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

In diesem Kapitel werden wir die Umgebungsvariablen, die allgemeine Konfiguration, die Datenbankkonfiguration und die E-Mail-Konfiguration in CakePHP verstehen.

PHP 8.4 bringt mehrere neue Funktionen, Sicherheitsverbesserungen und Leistungsverbesserungen mit einer beträchtlichen Menge an veralteten und entfernten Funktionen. In dieser Anleitung wird erklärt, wie Sie PHP 8.4 installieren oder auf PHP 8.4 auf Ubuntu, Debian oder deren Derivaten aktualisieren. Obwohl es möglich ist, PHP aus dem Quellcode zu kompilieren, ist die Installation aus einem APT-Repository wie unten erläutert oft schneller und sicherer, da diese Repositorys in Zukunft die neuesten Fehlerbehebungen und Sicherheitsupdates bereitstellen.

Um in cakephp4 mit Datum und Uhrzeit zu arbeiten, verwenden wir die verfügbare FrozenTime-Klasse.

Um am Datei-Upload zu arbeiten, verwenden wir den Formular-Helfer. Hier ist ein Beispiel für den Datei-Upload.

In diesem Kapitel lernen wir die folgenden Themen im Zusammenhang mit dem Routing kennen.

CakePHP ist ein Open-Source-Framework für PHP. Es soll die Entwicklung, Bereitstellung und Wartung von Anwendungen erheblich vereinfachen. CakePHP basiert auf einer MVC-ähnlichen Architektur, die sowohl leistungsstark als auch leicht zu verstehen ist. Modelle, Ansichten und Controller gu

Visual Studio Code, auch bekannt als VS Code, ist ein kostenloser Quellcode-Editor – oder eine integrierte Entwicklungsumgebung (IDE) –, die für alle gängigen Betriebssysteme verfügbar ist. Mit einer großen Sammlung von Erweiterungen für viele Programmiersprachen kann VS Code c

Der Validator kann durch Hinzufügen der folgenden zwei Zeilen im Controller erstellt werden.
