PHP中两个float(浮点数)比较实例分析


Posted in PHP onSeptember 27, 2015

本文实例讲述了PHP中两个float(浮点数)比较方法。分享给大家供大家参考。具体如下:

最近在开发一个合同管理系统的时候,涉及到两个浮点数比较,算是把我郁闷惨了。
在N久以前,就不晓得从哪里听来的一个“不要用等号去比较浮点数”的“真理”,自己平时也在用,好像没有出现啥问题,可这次问题总算是来了。

<?php
$sum = "12300.00";
$a  = "10000.30";
$b  = "2000.30";
$c  =  "299.40";
$sum = (float) $sum;
$s = (float) ($a+$b+$c);
var_dump($sum, $s);
var_dump($sum==$s);

结果是:

float(12300)
float(12300)
bool(false)

后来才知道在PHP中,要比较两个浮点数的大小,可以用bccomp(参数1,参数2,小数位)来比较。

<?php
$sum = "12300.00";
$a  = "10000.30";
$b  = "2000.30";
$c  =  "299.40";
$sum = (float) $sum;
$s = (float) ($a+$b+$c);
var_dump($sum, $s);
var_dump(bccomp($sum,$s,2));

结果:

float(12300)
float(12300)
int(0) // 0表示两个浮点数值相等

bccomp函数具体用法可参考PHP手册。

希望本文所述对大家的php程序设计有所帮助。

PHP 相关文章推荐
用PHP实现WEB动态网页静态
Oct 09 PHP
怎样才能成为PHP高手?学会“懒惰”的编程
Dec 05 PHP
php实现的仿阿里巴巴实现同类产品翻页
Dec 11 PHP
php+mysqli批量查询多张表数据的方法
Jan 29 PHP
PHP访问Google Search API的方法
Mar 05 PHP
使用PHP实现微信摇一摇周边红包
Jan 04 PHP
php如何控制用户对图片的访问 PHP禁止图片盗链
Mar 25 PHP
mysql查找删除重复数据并只保留一条实例详解
Sep 24 PHP
自写的利用PDO对mysql数据库增删改查操作类
Feb 19 PHP
php微信开发之谷歌测距
Jun 14 PHP
基于PHP实现邮箱验证激活过程详解
Oct 28 PHP
php+laravel 扫码二维码签到功能
May 15 PHP
用php代码限制国内IP访问我们网站
Sep 26 #PHP
十大使用PHP框架的理由
Sep 26 #PHP
PHP弹出对话框技巧详细解读
Sep 26 #PHP
ThinkPHP2.x防范XSS跨站攻击的方法
Sep 25 #PHP
ThinkPHP在Cli模式下使用模板引擎的方法
Sep 25 #PHP
腾讯CMEM的PHP扩展编译安装方法
Sep 25 #PHP
PHP生成随机字符串(3种方法)
Sep 25 #PHP
You might like
一步一步学习PHP(5) 类和对象
2010/02/16 PHP
PHP中的string类型使用说明
2010/07/27 PHP
PHP中$this和$that指针使用实例
2015/01/06 PHP
PHP的关于变量和日期处理的一些面试题目整理
2015/08/10 PHP
javascript管中窥豹 形参与实参浅析
2011/12/17 Javascript
js相册效果代码(点击创建即可)
2013/04/16 Javascript
jQuery选择器全面总结
2014/01/06 Javascript
JavaScript中实现最高效的数组乱序方法
2014/10/11 Javascript
谈谈Jquery ajax中success和complete有哪些不同点
2015/11/20 Javascript
Ztree新增角色和编辑角色回显问题的解决
2016/10/25 Javascript
Node.js Express 框架 POST方法详解
2017/01/23 Javascript
ReactNative实现Toast的示例
2017/12/31 Javascript
详解Javascript中new()到底做了些什么?
2018/03/29 Javascript
详解.vue文件解析的实现
2018/06/11 Javascript
微信小程序中换行空格(多个空格)写法详解
2018/07/10 Javascript
详解Vue之父子组件传值
2019/04/01 Javascript
JS函数动态传递参数的方法分析【基于arguments对象】
2019/06/05 Javascript
发布订阅模式在vue中的实际运用实例详解
2019/06/09 Javascript
浅谈vue项目,访问路径#号的问题
2020/08/14 Javascript
el-table表头根据内容自适应完美解决表头错位和固定列错位
2021/01/07 Javascript
[46:16]2018DOTA2亚洲邀请赛3月30日 小组赛B组 iG VS VP
2018/03/31 DOTA
Python模拟登录验证码(代码简单)
2016/02/06 Python
python内存管理机制原理详解
2019/08/12 Python
欧洲领先的电子和电信零售商和服务提供商:Currys PC World Business
2017/12/05 全球购物
美国美食礼品篮网站:Gourmet Gift Baskets
2019/12/15 全球购物
创建索引时需要注意的事项
2013/05/13 面试题
大学生毕业的自我鉴定
2013/11/13 职场文书
家长通知书教师评语
2014/04/17 职场文书
啦啦队口号大全
2014/06/16 职场文书
元旦晚会活动总结
2014/07/09 职场文书
职工年度考核评语
2014/12/31 职场文书
使用tensorflow 实现反向传播求导
2021/05/26 Python
Python基础学习之奇异的GUI对话框
2021/05/27 Python
Ajax 的初步实现(使用vscode+node.js+express框架)
2021/06/18 Javascript
Java比较两个对象中全部属性值是否相等的方法
2021/08/07 Java/Android
十大最强奥特曼武器:怪兽战斗仪在榜,第五奥特之父只使用过一次
2022/03/18 日漫