PHP金额计算高精度函数
生活随笔
收集整理的這篇文章主要介紹了
PHP金额计算高精度函数
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
精度函數?
結果是2222? ?不是0.8? ?因為存在精度問題,判定不相等,所以輸出2222
PHP浮點數計算精度不夠,以下是幾個精度計算函數 bcadd — 加法 bccomp — 比較 bcdiv — 相除 bcmod — 求余數 bcmul — 乘法 bcpow — 次方 bcpowmod — 先次方然后求余數 bcscale — 給所有函數設置小數位精度 bcsqrt — 求平方根 bcsub — 減法計算類
<?php/*** PHP精確計算 主要用于貨幣的計算用* @param $n1 第一個數* @param $symbol 計算符號 + - * / %* @param $n2 第二個數* @param string $scale 精度 默認為小數點后兩位* @return string*/ class Price{public static function pricecalc($n1, $symbol, $n2, $scale = '2'){$res = "";switch ($symbol) {case "+"://加法$res = bcadd($n1, $n2, $scale);break;case "-"://減法$res = bcsub($n1, $n2, $scale);break;case "*"://乘法$res = bcmul($n1, $n2, $scale);break;case "/"://除法$res = bcdiv($n1, $n2, $scale);break;case "%"://求余、取模$res = bcmod($n1, $n2, $scale);break;default:$res = "";break;}return $res;}/*** 價格由元轉分(用于微信支付單位轉換)* @param $price 金額* @return int*/public static function priceyuantofen($price){$price = intval(self::pricecalc(100, "*",$price));return $price;}/*** 價格由分轉元* @param $price 金額* @return float*/public static function pricefentoyuan($price){$price = self::pricecalc(self::priceformat($price),"/",100);return $price;}/*** 價格格式化** @param int $price* @return string $price_format*/public static function priceformat($price){$price_format = number_format($price, 2, '.', '');return $price_format;} }?
總結
以上是生活随笔為你收集整理的PHP金额计算高精度函数的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Redis给PHP安装redis扩展
- 下一篇: 充电桩行业的上市公司 电动汽车催生出的热