位置: 编程技术 - 正文

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 获取需要授权页面的方法

  • 车船税规定怎么缴纳
  • 企业购进固定资产时增值税如何处理
  • 普惠性幼儿园是非盈利幼儿园吗
  • 油票发票在报销中怎么开
  • 火车票抵扣进项税怎么计算
  • 现金盘亏无法查明原因计入什么科目
  • 资产减值损失属于什么科目借方增加还是减少
  • 银行承兑逾期证明怎么写
  • 车间工人加班餐图片
  • 手工做账流程图
  • 公车补贴计入什么科目
  • 员工考试报名费计入什么科目
  • 押金放到哪个会计科目
  • 递延所得税资产是什么
  • 营改增后租金如何交税
  • 工程交税需要什么资料
  • 开具旧税号也能认证成功
  • 附加税是当月计提当月缴纳吗
  • 境外单位或者个人
  • 2019年收入不足6万如何退税
  • 土地增值税允许扣除的评估价
  • 公司注销了帐户钱能办款
  • 贷款利息收到发票怎么办
  • 买入返售金融资产是资产还是负债
  • 2019年城建税减免政策
  • 进项票少了怎么办
  • php数组函数有哪些
  • 按简易办法征收增值税的行为有
  • php获取参数值的三种方式
  • 在建工程计提减值准备计入什么科目
  • 已经开票但是未达到收入确认条件的怎么进行账务处理
  • 新年快乐彝文怎么写
  • php 微信公众号
  • vue3获取dom元素的方法
  • controller层,service层,dao
  • php调用微信扫描二维码
  • 固定资产有金额界定吗
  • 个体工商户没有收入要交税吗
  • 固定资产折旧完报废账务处理
  • 销售额营业收入怎么填
  • 帝国主义
  • uni-app表单验证
  • 蔬菜和肉类是不是免税
  • 公章变更需要到哪个部门
  • 有收入就要结转成本吗为什么
  • 外购存货的初始成本由买价加采购费用构成
  • 增值税发票是记账联还是抵扣联
  • sql中聚合函数的用法
  • 月末研发支出会结转至哪个账户
  • 出口货物做免税处理
  • 年应税销售额是指纳税人在连续不超过12个月或四个季度
  • 折旧后的剩余价值叫什么
  • 购进商品售价金额核算
  • 多交的税费申请抵扣下期
  • 冲销以前月份的凭证
  • 管理费用怎样分摊归集到产品
  • 资产减值损失如何计提
  • 零余额账户银行日记账
  • 退回多交的所得税怎么退
  • 装修费用怎么结算
  • 商业银行的存款有哪些种类
  • mysql 元数据管理
  • 在WINDOWS系统中用鼠标拖动非最大化窗口的标题栏可以
  • freebsd 升级
  • linux查看组的信息
  • linux保存配置文件
  • 安卓手机屏幕不好使了怎么办
  • ms-sys
  • 人物动画声音随声而动
  • js 操作excel
  • jquery移动端ui
  • 如何解决eclipse非正常关闭重打开编译代码
  • jquery使用css
  • python的redis
  • 税务青年要担当
  • 江苏国税申报
  • 小微企业印花税减免政策2024
  • 劳务报酬所得个人所得税计算方法
  • 武汉代账公司一般怎么收费
  • dhl清关需要提供资料嘛
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设