位置: 编程技术 - 正文

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

  • 小规模收到专票怎么处理
  • 2023年小规模物业公司物业费税率
  • 开分公司赚钱吗
  • 个人所得税专项扣除子女教育标准
  • 开办期间的利息收入怎么做账
  • 印花税2021年需要计提吗
  • 客运地方税务局监制发票还能用吗?
  • 企业所得税弥补亏损年限
  • 如何申请免税
  • 转让无形资产所有权税率
  • 房地产企业回迁安置房税收规定
  • 个人房产房租收入怎么算
  • 营业收入利润率多少合适
  • 职工暖气费报销算福利
  • 收到进口增值税发票可以直接抵扣吗
  • 我国的税收管理体制和方向
  • 在杂志上发表论文
  • 增资印花税缴纳时间
  • 实收资本印花税税率多少
  • 早教加盟需要
  • 小规模纳税人的季度
  • 营改增后,纳税人转让房地产
  • 非贸易企业代扣代缴增值税和附加税如何做账?
  • 不动产租金收入缴纳增值税
  • 电脑搜索功能不准确
  • 三种测试网速的方法
  • 私营合伙企业个税怎么算
  • 销售收入的暂估入账
  • 鸿蒙系统蓝牙耳机声音小怎么办
  • php中字符串函数
  • php getdate()方法
  • uniapp引入全局scss
  • 评价指标mae
  • laravel insert ignore
  • 对税务总局意见建议
  • 固定资产的使用寿命超过一个会计年度
  • php 邮件发送
  • 为什么说网络安全靠人民
  • ps笔刷在哪里调
  • 转账不同银行同城转账手续费多少
  • 垃圾处理费计提吗
  • 母子公司资产划转的涉税问题
  • 政府补助的核算内容有哪些
  • 招待费进项转出填表二哪里
  • micro start
  • 应付账款转收入摘要怎么写
  • 雇用残疾人税收优惠
  • 建筑业挂靠企业所得税如何收取?
  • 外购的商品赠送客人是否销售吗
  • 企业收到个体户的普通发票还需要缴纳20%的税吗
  • 资金账簿的计税依据
  • 以前年度损益科目类别怎么填
  • 关于小微企业免征印花税的规定
  • 银行利息增值税发票申请单怎么填
  • 帮员工代缴社保分录怎么办
  • 如何做好现金流
  • 厂房拆了建住宅可以么
  • sql server 错误
  • ubuntu系统如何
  • macbook 如何设置safari的搜索引擎
  • windows8怎么去除广告
  • 各种linux系统比较
  • window无法正常启动怎么办
  • linux如何修改网关地址
  • 自动返回主页
  • windows配额
  • 模仿文明
  • web开发手机app
  • 学习雷锋好榜样
  • js面向对象的原理
  • js tab选项卡
  • jquery版本过低
  • django admin form
  • jquery图片左右切换
  • 重庆市电子税务局发票查询
  • 如何打印个人所得税证明
  • 达州房管局备案查询系统
  • 免除滞纳金的条件
  • 福建原盐和自然盐有什么区别
  • 苹果官网手机号码无效
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设