位置: 编程技术 - 正文

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

  • 工会经费计税依据
  • 初中毕业可以考警察学校吗
  • 拖欠安装费
  • 长期挂账的应付账款如何写申请报告
  • 如何确定核定征收的应税所得率
  • 长期股权投资成本法核算
  • 债务重组损失计算公式
  • 包装成本为产品的百分比
  • 退回投标保证金分录
  • 房产税城镇土地使用税申报流程
  • 非货币性资产对外投资
  • 员工工资超过多少钱要交税
  • 增值税发票的地址已变更过怎么办
  • 工程预缴税款会计分录
  • 在建工程转固定资产凭证附件
  • 劳务公司差额征收税率是多少
  • 可供出售金融资产新准则叫什么
  • 返还工资保证金的书面申请
  • 营改增账务处理实例
  • 买入返售金融资产是资产还是负债
  • 外购公司的长期投资如何做账
  • 购买商品未入库
  • 如何更改应用商店
  • 网速不稳定的解决方法
  • rundll32进程很多
  • 进程控制块PCB不包括( )
  • php数组函数实现机选双色球
  • 高新技术企业加计5%
  • 长期债券投资减少是计入贷方吗?
  • 企业与政府所签的合同
  • wordpress添加css
  • 圣克鲁斯岛战役
  • codeignitor
  • php安装swoole扩展
  • 建行E信通贴现需要什么资料
  • php cache缓存
  • 2023华为OD机试题
  • vue从0创建一个项目
  • arp-a命令怎么用
  • ifconfig命令配置地址
  • phpcms怎么用
  • 入库税款异常怎么处理
  • 企业会计准则对收入的定义
  • 差旅费补贴要交个人所得税文件
  • python rem
  • 社会团体要求
  • 管理费用属于产品成本么
  • 个体户定额3万需要申报吗
  • 补交上年度企业所得税税额需要本年度纳税调增吗
  • 材料估价入库发票收到如何记账
  • 先抵扣后付款怎么做账
  • 金税三期有什么用
  • 银行保函会计处理
  • 应交税费月底怎么结账
  • 企业购买银行理财产品的会计处理
  • 给对方承兑对方不承认怎么办
  • 不同利益主体之间的利益如何协调
  • 差旅费借贷记账法的会计分录
  • 没有认证的进项发票可以做成本吗
  • 员工离职未领工资怎么处置
  • 使用sql查询
  • Win7 64位 mysql 5.7下载安装常见问题小结
  • windows7录音怎么录
  • mac文档怎么传给winds
  • linux系统ln命令
  • bash.exe
  • win8打开ie
  • Win10最新版下载天翼云盘
  • [置顶]bilinovel
  • jquery操作表格
  • config_system_switchs
  • 搭建nfs
  • 批处理/d
  • php删除代码
  • 深入理解两个大计重要论断心得体会
  • linux和windows互ping
  • 个人所得税代扣代缴会计分录
  • 随申办如何缴纳社保
  • 税控系统技术维护费抵税怎么申报
  • 消费税征税环节
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设