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面试题附答案
Jan 07 PHP
调整优化您的LAMP应用程序的5种简单方法
Jun 26 PHP
php获取用户IPv4或IPv6地址的代码
Nov 15 PHP
解析posix与perl标准的正则表达式区别
Jun 17 PHP
php在数据库抽象层简单使用PDO的方法
Nov 03 PHP
几个优化WordPress中JavaScript加载体验的插件介绍
Dec 17 PHP
盘点PHP和ASP.NET的10大对比!
Dec 24 PHP
在Laravel框架里实现发送邮件实例(邮箱验证)
May 20 PHP
Yii使用DeleteAll连表删除出现报错问题的解决方法
Jul 14 PHP
php利用ffmpeg提取视频中音频与视频画面的方法详解
Jun 07 PHP
PHP中rename()函数的妙用讲解
Feb 28 PHP
php tpl模板引擎定义与使用示例
Aug 09 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 echo, print, print_r, sprintf, var_dump, var_expor的使用区别
2013/06/20 PHP
PIGCMS 如何关闭聊天机器人
2015/02/12 PHP
PHP合并discuz用户脚本的方法
2015/08/04 PHP
PHP后期静态绑定之self::限制实例分析
2018/12/21 PHP
PHP面向对象程序设计继承用法简单示例
2018/12/28 PHP
PHP商品秒杀问题解决方案实例详解【mysql与redis】
2019/07/22 PHP
JavaScript随机排序(随即出牌)
2010/09/17 Javascript
始终在屏幕中间显示Div的代码(css+js)
2011/03/10 Javascript
JS跨域总结
2012/08/30 Javascript
js数组Array sort方法使用深入分析
2013/02/21 Javascript
js获取系统的根路径实现介绍
2013/09/08 Javascript
jquery通过a标签删除table中的一行的代码
2013/12/02 Javascript
js身份证判断方法支持15位和18位
2014/03/18 Javascript
常用的jQuery前端技巧收集
2014/12/24 Javascript
JQuery显示隐藏DIV的方法及代码实例
2015/04/16 Javascript
JS或jQuery获取ASP.NET服务器控件ID的方法
2015/06/08 Javascript
jQuery动态生成Bootstrap表格
2016/11/01 Javascript
jQuery中的select操作详解
2016/11/29 Javascript
jQuery插件HighCharts实现的2D堆条状图效果示例【附demo源码下载】
2017/03/14 Javascript
详解组件库的webpack构建速度优化
2018/06/18 Javascript
ant design 日期格式化的实现
2020/10/27 Javascript
[05:06]2017亚洲邀请赛DAC回顾片
2017/04/19 DOTA
[06:25]第二届DOTA2亚洲邀请赛主赛事第二天比赛集锦.mp4
2017/04/03 DOTA
Python 实现简单的电话本功能
2015/08/09 Python
Python利用IPython提高开发效率
2016/08/10 Python
Django + Uwsgi + Nginx 实现生产环境部署的方法
2018/06/20 Python
Python使用Pandas库实现MySQL数据库的读写
2019/07/06 Python
Python调用C语言的实现
2019/07/26 Python
理解Django 中Call Stack机制的小Demo
2020/09/01 Python
德国自然时尚和有机产品购物网站:Waschbär
2019/05/29 全球购物
电子狗项圈:eDog Australia
2019/12/04 全球购物
Linux如何命名文件--使用文件名时应注意
2014/05/29 面试题
领导干部考核评语
2015/01/04 职场文书
2015教师个人年度工作总结
2015/10/23 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python