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金额计算高精度函数相关推荐
- php 浮点型float 强转int php金额计算 php元转分
float 转int导致的误差太大,出现下面的问题. 浮点数的精度 浮点数的精度有限.尽管取决于系统,PHP 通常使用 IEEE 754 双精度格式,则由于取整而导致的最大相对误差为 1.11e-16 ...
- vue简单的金额计算
1.效果图 2.功能说明:输入单价和件数点击其他地方输出总金额 3.代码(vue.js的引入地址目录记得改~~) <!DOCTYPE html> <html><head& ...
- 计算 sigmoid 函数的导数
计算 sigmoid 函数的导数 回想一下,sigmoid 函数有一个完美的导数,我们可以在下面的计算中看到.这将使我们的反向传播步骤更加简洁.
- boost::math模块计算贝塞尔函数的零点的测试程序
boost::math模块计算贝塞尔函数的零点的测试程序 实现功能 C++实现代码 实现功能 boost::math模块计算贝塞尔函数的零点的测试程序 C++实现代码 #ifdef _MSC_VER ...
- 金融系统中正确的金额计算及存储方式
转载自 金融系统中正确的金额计算及存储方式 经典的精度丢失问题 Java中的类型float.double用来做计算会有精度丢失问题,下面来看下面的示例. public static void main ...
- ZZULIOJ 1102: 火车票退票费计算(函数专题)
火车票退票费计算(函数专题) 题目描述 2013年起,火车票退票费比例下调:票面乘车站开车时间前48小时以上的按票价5%计退票费.同时,车票退票费的计算方法不再四舍五入到元为单位,而是以5角为单位:尾 ...
- 算法学习笔记:对指定金额计算最少钞票数
算法学习笔记:对指定金额计算最少钞票数 一.引出问题 财务人员给员工发工资时经常遇到这样一个问题,即根据每个人的工资额(以元作为单位)计算出各种面值的钞票的张数,且要求总张数最少.例如,某职工工资为3 ...
- 实验3-2 计算符号函数的值 (10 分)
实验3-2 计算符号函数的值 (10 分) 对于任一整数n,符号函数sig**n(n)的定义如下: 请编写程序计算该函数对任一输入整数的值. 输入格式: 输入在一行中给出整数n. 输出格式: 在一行中 ...
- 实验2-2-4 计算分段函数[2] (10 分)
实验2-2-4 计算分段函数[2] (10 分) 本题目要求计算下列分段函数f(x)的值: 注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂. 输入格式: 输入在一行中 ...
最新文章
- 成为真正的变革型CIO,代价几何?
- 服务器堡垒机登录方式
- 如何学习linux设备驱动
- [MyBatisPlus]条件构造器wapper
- ios沙箱模式开启_iOS沙盒篇
- jsp源码oracle数据库,JSP与oracle数据库交互案例
- GluonCV 升级0.8版,引入深度估计、助力街景分析
- java设置小数位数_java设置小数点后位数
- Mybatis 开发神器:Fast MyBatis,太强了!
- 关于电的计算机公式,关于各类电量的计算公式
- Zynq-Linux移植学习笔记之57-国产ZYNQ PL挂载兆易创新GD25S512 flash
- kubectl源码分析之rollout undo
- 解决问题:UnicodeDecodeError utf-8 codec cant decode byte 0xb5 in position 116:
- 组战队,赢iPhone啦!
- 惠普台式计算机配置,hp惠普台式机bios设置图文教程
- noip2012 文化之旅 (深搜,最优性剪枝)
- 大数据日志分析系统-logstash
- bit、Byte、bps、Bps、pps、Gbps单位说明
- Python的5大就业方向,薪资诱人前景好
- UVa Problem 10067 Playing With Wheels (摆弄轮子)
热门文章
- 1.18.3.Flink Catalog介绍、Catalog 定义、Catalog 的实现、Catalog 使用举例
- 第三天:制定项目计划
- Struts2做下载
- mysql备份工具Xtrabackup增量备份还原图解
- Excel单样本T检验
- Sqoop1使用手册
- nc65语义模型设计_文本匹配方法系列––多维度语义交互匹配模型
- 哈工大理论力学第八版电子版_理论力学哈工大第八版1第六章思考题课后题
- mugen4g补丁如何使用_客户端与WSUS如何连接,补丁审批,下载安装(3)
- 钰群USB3.0音视频信号采集