php高精度加減乘除


轉:https://www.cnblogs.com/ivy-zheng/p/11236342.html

<?php
/**
* 精確加法
* @param [type] $a [description]
* @param [type] $b [description]
*/
function math_add($a,$b,$scale = '2') {
return bcadd($a,$b,$scale);
}


/**
* 精確減法
* @param [type] $a [description]
* @param [type] $b [description]
*/
function math_sub($a,$b,$scale = '2') {
return bcsub($a,$b,$scale);
}

/**
* 精確乘法
* @param [type] $a [description]
* @param [type] $b [description]
*/
function math_mul($a,$b,$scale = '2') {
return bcmul($a,$b,$scale);
}

/**
* 精確除法
* @param [type] $a [description]
* @param [type] $b [description]
*/
function math_div($a,$b,$scale = '2') {
return bcdiv($a,$b,$scale);
}

/**
* 精確求余/取模
* @param [type] $a [description]
* @param [type] $b [description]
*/
function math_mod($a,$b) {
return bcmod($a,$b);
}

/**
* 比較大小
* @param [type] $a [description]
* @param [type] $b [description]
* 大於 返回 1 等於返回 0 小於返回 -1
*/
function math_comp($a,$b,$scale = '5') {
return bccomp($a,$b,$scale); // 比較到小數點位數
}


echo math_add('3.445','3.444')."\n"; // 加 6.88
echo math_sub('3.445','3.444')."\n"; // 減 0.00
echo math_mul('3.445','3.444')."\n"; /

/ 乘 11.86
echo math_div('3.445','3.444')."\n"; // 除 1.00
echo math_mod('3.445','3.444')."\n"; // 取模 0
echo math_comp('3.445','3.444')."\n";// 比較 1

echo math_add('3.445','3.444','3')."\n"; // 加 6.889
echo math_sub('3.445','3.444','3')."\n"; // 減 0.001
echo math_mul('3.445','3.444','3')."\n"; // 乘 11.864
echo math_div('3.445','3.444','3')."\n"; // 除 1.000
echo math_mod('3.445','3.444')."\n"; // 取模 0
echo math_comp('3.445','3.444')."\n";// 比較 1
?>

今天正好要用到bcadd()函數,結果報錯,百度下原因是沒有安裝bcmath擴展。

那就安裝唄,搜了一下,我是yum安裝的php7.2,擴展也可以yum來安裝

1.鍵入命令 (72W就是php版本,不加有一定的幾率報錯)

yum install php72w-bcmath

回車;

2.ok,安裝完畢,重啟服務器 Nginx 或者 Apache


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM