精度函数

结果是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金额计算高精度函数相关推荐

  1. php 浮点型float 强转int php金额计算 php元转分

    float 转int导致的误差太大,出现下面的问题. 浮点数的精度 浮点数的精度有限.尽管取决于系统,PHP 通常使用 IEEE 754 双精度格式,则由于取整而导致的最大相对误差为 1.11e-16 ...

  2. vue简单的金额计算

    1.效果图 2.功能说明:输入单价和件数点击其他地方输出总金额 3.代码(vue.js的引入地址目录记得改~~) <!DOCTYPE html> <html><head& ...

  3. 计算 sigmoid 函数的导数

    计算 sigmoid 函数的导数 回想一下,sigmoid 函数有一个完美的导数,我们可以在下面的计算中看到.这将使我们的反向传播步骤更加简洁.

  4. boost::math模块计算贝塞尔函数的零点的测试程序

    boost::math模块计算贝塞尔函数的零点的测试程序 实现功能 C++实现代码 实现功能 boost::math模块计算贝塞尔函数的零点的测试程序 C++实现代码 #ifdef _MSC_VER ...

  5. 金融系统中正确的金额计算及存储方式

    转载自 金融系统中正确的金额计算及存储方式 经典的精度丢失问题 Java中的类型float.double用来做计算会有精度丢失问题,下面来看下面的示例. public static void main ...

  6. ZZULIOJ 1102: 火车票退票费计算(函数专题)

    火车票退票费计算(函数专题) 题目描述 2013年起,火车票退票费比例下调:票面乘车站开车时间前48小时以上的按票价5%计退票费.同时,车票退票费的计算方法不再四舍五入到元为单位,而是以5角为单位:尾 ...

  7. 算法学习笔记:对指定金额计算最少钞票数

    算法学习笔记:对指定金额计算最少钞票数 一.引出问题 财务人员给员工发工资时经常遇到这样一个问题,即根据每个人的工资额(以元作为单位)计算出各种面值的钞票的张数,且要求总张数最少.例如,某职工工资为3 ...

  8. 实验3-2 计算符号函数的值 (10 分)

    实验3-2 计算符号函数的值 (10 分) 对于任一整数n,符号函数sig**n(n)的定义如下: 请编写程序计算该函数对任一输入整数的值. 输入格式: 输入在一行中给出整数n. 输出格式: 在一行中 ...

  9. 实验2-2-4 计算分段函数[2] (10 分)

    实验2-2-4 计算分段函数[2] (10 分) 本题目要求计算下列分段函数f(x)的值: 注:可在头文件中包含math.h,并调用sqrt函数求平方根,调用pow函数求幂. 输入格式: 输入在一行中 ...

最新文章

  1. 成为真正的变革型CIO,代价几何?
  2. 服务器堡垒机登录方式
  3. 如何学习linux设备驱动
  4. [MyBatisPlus]条件构造器wapper
  5. ios沙箱模式开启_iOS沙盒篇
  6. jsp源码oracle数据库,JSP与oracle数据库交互案例
  7. GluonCV 升级0.8版,引入深度估计、助力街景分析
  8. java设置小数位数_java设置小数点后位数
  9. Mybatis 开发神器:Fast MyBatis,太强了!
  10. 关于电的计算机公式,关于各类电量的计算公式
  11. Zynq-Linux移植学习笔记之57-国产ZYNQ PL挂载兆易创新GD25S512 flash
  12. kubectl源码分析之rollout undo
  13. 解决问题:UnicodeDecodeError utf-8 codec cant decode byte 0xb5 in position 116:
  14. 组战队,赢iPhone啦!
  15. 惠普台式计算机配置,hp惠普台式机bios设置图文教程
  16. noip2012 文化之旅 (深搜,最优性剪枝)
  17. 大数据日志分析系统-logstash
  18. bit、Byte、bps、Bps、pps、Gbps单位说明
  19. Python的5大就业方向,薪资诱人前景好
  20. UVa Problem 10067 Playing With Wheels (摆弄轮子)

热门文章

  1. 1.18.3.Flink Catalog介绍、Catalog 定义、Catalog 的实现、Catalog 使用举例
  2. 第三天:制定项目计划
  3. Struts2做下载
  4. mysql备份工具Xtrabackup增量备份还原图解
  5. Excel单样本T检验
  6. Sqoop1使用手册
  7. nc65语义模型设计_文本匹配方法系列––多维度语义交互匹配模型
  8. 哈工大理论力学第八版电子版_理论力学哈工大第八版1第六章思考题课后题
  9. mugen4g补丁如何使用_客户端与WSUS如何连接,补丁审批,下载安装(3)
  10. 钰群USB3.0音视频信号采集