位置: 编程技术 - 正文

php 浮点数比较方法详解(php浮点数四舍五入)

编辑:rootadmin

推荐整理分享php 浮点数比较方法详解(php浮点数四舍五入),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:php浮点数比较大小,php浮点数比较,php浮点数运算精度问题,php浮点数计算解决方法,php浮点型的比大小,php浮点数运算精度问题,php浮点数比较,php浮点型的比大小,内容如对您有帮助,希望把文章链接给更多的朋友!

浮点数运算精度问题

首先看一个例子:

$a+$b==$c 返回true,正确 $c-$b==$a 返回false,错误

为什么会这样呢?

运算后,精度为位时实际返回的内容如下:

$c-$b 为 0.,因此与0.1比较返回false

出现这个问题是因为浮点数计算涉及精度,当浮点数转为二进制时有可能会造成精度丢失。

浮点数转二进制方法

整数部分采用除以2取余方法

小数部分采用乘以2取整方法

例如:把数字8.5转为二进制

整数部分是8

8/2=4 8%2=0 4/2=2 4%2=0 2/2=1 2%2=0

1比2小,因此不需要计算下去,整数8的二进制为

小数部分是0.5

0.5x2 = 1.0

因取整后小数部分为0,因此不需要再计算下去

小数0.5的二进制为 0.1

8.5的二进制为.1

php 浮点数比较方法详解(php浮点数四舍五入)

计算数字0.9的二进制

0.9x2=1.8 0.8x2=1.6 0.6x2=1.2 0.2x2=0.4 0.4x2=0.8 0.8x2=1.6

…. 之后不断循环下去,当截取精度为N时,N后的数会被舍去,导致精度丢失。

上例中0.9在转为二进制时精度丢失,导致比较时出现错误。

所以永远不要相信浮点数已精确到最后一位,也永远不要比较两个浮点数是否相等。

正确比较浮点数的方法

1.使用round方法处理后再比较

例子:

2.使用高精度运算方法

首先进行运算时,使用高精度的运算方法,这样可以保证精度不丢失。

高精度运算的方法如下:

bcadd 将两个高精度数字相加

bccomp 比较两个高精度数字,返回-1,0,1

bcdiv 将两个高精度数字相除

bcmod 求高精度数字余数

bcmul 将两个高精度数字相乘

bcpow 求高精度数字乘方

bcpowmod 求高精度数字乘方求模

bcscale 配置默认小数点位数,相当于Linux bc中的”scale=”

bcsqrt 求高精度数字平方根

bcsub 将两个高精度数字相减

例子:

标签: php浮点数四舍五入

本文链接地址:https://www.jiuchutong.com/biancheng/290928.html 转载请保留说明!

上一篇:PHP删除二维数组中相同元素及数组重复值的方法示例(php如何删除数组元素)

下一篇:PHP curl 或 file_get_contents 获取需要授权页面的方法

  • 海关进口增值税怎么计算
  • 年度部门决算报表系统路径
  • 公司借款受托支付是什么
  • 未完工程如何处理
  • 投标成交服务费
  • 企业减少注册资金需要缴税吗
  • 销售农产品是否可以抵税
  • 用excel怎么制作思维导图
  • 公司给非员工代缴社保合法吗
  • 资产损失税前扣除是什么意思
  • 车船税重复交了怎么退怎么在网上完税?
  • 会计中借方和贷方怎么理解
  • 用友软件作废凭证
  • 投资性房地产收入属于什么收入
  • 异地预缴企业所得税
  • 普票抵扣税
  • 审核发票的要素
  • 税前可以扣除的管理费用计算公式
  • 免征的教育费附加如何账务处理
  • 销售方开票不填开户行
  • 销售退回发票怎么处理
  • 公司借出的私人物品
  • 会计调账有哪些方式
  • 内插法计算内部收益率公式
  • 赠送给客户的商品怎么做账
  • 向承兑人提示付款
  • 跨年度主营业务收入错账调整
  • 对研发机构采购国产设备,全额退还增值税
  • win10自带的照片查看器
  • 去年的记账凭证错了怎么办
  • 资产负债表的编制方法
  • sdi是什么文件
  • windows7旗舰版为什么很多东西打不开
  • 若依框架前后端一体化设计管理系统
  • 银行存款日记账可以采用
  • 小规模纳税人每月申报什么税
  • thinkphp5教程
  • 微信h5页面设计
  • php抽奖程序源码
  • php实现简单论坛
  • 进口设备退增值税
  • 可变现净值高于成本是什么意思
  • 专项应付款二级明细科目有哪些
  • 员工离职后个税申报系统如何操作
  • 免税农产品发票怎么抵扣申报
  • 机器设备计提折旧纳税调整
  • mysql8绿色版安装
  • sql查询出各科成绩单
  • 所得税费用的账目处理
  • 事业单位小规模纳税人增值税账务处理
  • 汇算清缴怎么弥补亏损怎么操作
  • 个人所得税多计算了一个月工资怎么办
  • 建筑业分项目核算会计账务处理
  • 企业设备维修
  • 销售产品产生的运输费计入什么科目
  • 出纳 记账凭证
  • 小企业固定资产折旧方法包括
  • mysql必知必会在线阅读
  • 获取sqlsession
  • windows7内部版本7601激活密钥
  • win8.1使用技巧
  • .ctc文件
  • win8系统桌面图标
  • muamgr.exe - muamgr是什么进程 有何作用
  • KbdTray.exe - KbdTray是什么进程 有什么作用
  • w8系统ie浏览器在哪
  • Windows 7 Apache下计算机无法访问局域网网站的解决方法
  • win10预览文件怎么显示内容
  • j-v测试
  • shell脚本用法
  • 图形学题目
  • shell脚本-ge
  • css ie6 ie7 ff的CSS hack使用技巧
  • windows node.js
  • code encode的区别
  • 个人纳税记录为多少
  • 地税登记证编号是哪几位
  • 深圳市保安证办理流程
  • 北京市地税局第一稽查局郭洪鑫
  • 无锡国税电子发票怎么开
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设