位置: 编程技术 - 正文

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

  • 小规模增值税附表一怎么填
  • 跨年度调整税金及附加
  • 计提附加税的会计分录
  • 营业执照备案登记流程
  • 企业为员工承担的个税可以税前扣除吗
  • 实收资本能直接转出来吗
  • 销项税现金流量指定
  • 已认证的进项税发票要退回,怎么操作
  • 固定资产新建帐套
  • 长期借款借方登记归还的本金和利息
  • 设备款支付比例
  • 17%增值税发票怎么计算成13%
  • 新车车牌照
  • 公司租用房产税如何征收
  • 企业承担个人所得税的规定
  • 该期已经申报此税种且数据已提交,不能预约扣款
  • 哪些项目可以不报建
  • 发票已勾选未确认
  • 分期收款如何确认成本
  • 法人借款可以做到短期借款吗
  • 盘亏的转销金额
  • 长期待摊费用期末在借方还是贷方
  • 华为p20上市时间和价格
  • 购买商品接受劳务的现金流包括哪些
  • 黄金入账怎么做会计分录
  • 收到预付卡发票分录
  • 申请一般纳税人公司流程
  • 金融企业利息收入增值税
  • 姆科马齐国家公园
  • gridview datakeynames
  • 支付给境外个人的服务费
  • 以非现金资产清偿债务的,债权人应当
  • python如何在画布上写字
  • 社保缴费基数是怎么确定的
  • 公对公的税票是怎么个流程
  • 0申报残保金逾期影响企业信用评级吗为什么
  • 公司进行清算
  • <四>2:掌握Const 与一二级指针结合应用
  • vue打包找不到文件
  • 实收资本何时入账
  • 哪些所得需要去税务登记
  • 开票限额相关规定最新
  • 为什么收到要发1
  • 企业的所得税税率怎么计算
  • 上市公司回购股票多久可出售
  • 购买方如何申请红字信息表填写负数吗
  • 会计人要求
  • 注销时,其他应付款有余额,怎么冲减
  • 冲暂估的差异放在哪里
  • 购买固定资产的增值税计入成本吗
  • 进项税额转出后续处理
  • 国家规定房屋买卖中介费
  • 收到所得税退税的账务处理
  • 红字专用发票怎么做账
  • w10语言栏
  • win10屏幕自动变黄
  • win7桌面库图标怎么删除
  • windows server 2008 r2怎么用u盘启动
  • linux 添加ipv6路由
  • StatusClient.exe - StatusClient是什么进程 有什么作用
  • vnetd.exe
  • linux链接分为什么和什么
  • yum providers命令
  • win10开机自动启动软件怎么设置
  • pacis.exe - pacis是什么进程 有什么用
  • win8右边栏设置
  • win7双击有声音
  • python的了解
  • unity游戏官网
  • 怎么用批处理显示文字
  • JavaScript File API实现文件上传预览
  • jquery拖拽插件
  • 安卓手机查看sd卡
  • python asyncio
  • jquery滚动插件
  • 怎样看业务序号
  • 鸿蒙2.0哪个版本续航好
  • 民办非企业暂行
  • 为什么要进行进气歧管真空度检测
  • 武汉办房产证契税怎么交
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设