高精度价格计算、格式化
2016-03-15 09:29
387 查看
bc_math扩展 $money = 0.01; $price = price_format(99.9999); echo bcmul($price, 0.01, 2); // 积 echo $price = price_format((99.9999)); echo bcmul($left=3.1415926, $right=2.4569874566, 2); // 积 echo bcmul(99.99, 0.01, 2); // 积 echo bcdiv($left=99.99, $right=5, 2); // 商 echo bcadd($left=3.1415926, $right=2.4569874566, 2); // 和 echo bcsub($left=1.0321456, $right=3.0123456, 2); // 差 echo $price + 1; echo bccomp(100,99.99,2); // 1 > echo bccomp(99.99,100,2); // -1 < echo bccomp(99.99,99.99,2); // 0 ==
/** * 价格格式化输出 * @param unknown_type $number * @param unknown_type $decimals * @param unknown_type $dec_point * @param unknown_type $thousands_sep * @return string */ function price_format($number,$decimals=2,$dec_point='.',$thousands_sep=','){ $str = bcmul($number, 1.00,2); $str = $str.''; if(strpos($str, '.')!==false){ $strSplit = explode('.', $str); $subject = $strSplit[0]; $decimalsTemp = $strSplit[1]; $decimalsTemp = str_pad($decimalsTemp, 2,'0',STR_PAD_RIGHT); } else{ $subject = $str; $decimalsTemp = '00'; } $leaveCount = strlen($subject)%3; if($leaveCount==0){ $subject = preg_replace('/[0-9]{3}/', "$0,", $subject); return rtrim($subject,',').'.'.substr($decimalsTemp, 0,2); } else{ $prestr = substr($subject, 0,$leaveCount); $subject = preg_replace('/[0-9]{3}/', "$0,", substr($subject,$leaveCount)); $subject = rtrim($subject,','); if(!empty($subject)){ return $prestr.','.$subject.'.'.substr($decimalsTemp, 0,2); } else{ return $prestr.'.'.substr($decimalsTemp, 0,2); } } return $str; // return number_format($number,$decimals,$dec_point,$thousands_sep); }
相关文章推荐
- ubuntu14.04允许root远程链接、修改主机名
- 【Boost】boost库asio详解8——TCP的简单例子1
- IList,IList<T>转成dataSet
- WEB测试中常用的链接测试工具
- 【Boost】boost库asio详解7——boost::asio::buffer用法
- ajax相关的小知识
- 安装cocoapods存在的问题
- 默写简单的排序算法
- 数学中的常见的距离公式
- (传智播客)四大域对象_读取书籍列表
- Docker 入门到实践笔记1
- [刷题]Implement Stack
- Core Graphics
- 面试感悟
- new (C# Reference)
- 如何应对云爆发架构?四种方法替你解忧
- POJ1703——Find them, Catch them 并查集应用
- PHP设计模式 适配器模式
- 【Boost】boost库asio详解6——boost::asio::error的用法浅析
- 上网调查一下目前流行的源程序版本管理软件和项目管理软件都有哪些?各有什么优缺点?