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 相关文章推荐
我的论坛源代码(八)
Oct 09 PHP
逐步提升php框架的性能
Jan 10 PHP
PHP分页函数代码(简单实用型)
Dec 02 PHP
通过PHP修改Linux或Unix口令的方法分享
Jan 30 PHP
php 获取今日、昨日、上周、本月的起始时间戳和结束时间戳的方法
Sep 28 PHP
php将字符串转化成date存入数据库的两种方式
Apr 28 PHP
php使用PDO方法详解
Dec 27 PHP
学习php设计模式 php实现策略模式(strategy)
Dec 07 PHP
thinkPHP5.0框架简单配置作用域的方法
Mar 17 PHP
PHP实现表单提交数据的验证处理功能【防SQL注入和XSS攻击等】
Jul 21 PHP
Thinkphp5+uploadify实现的文件上传功能示例
May 26 PHP
统计PHP目录中的文件数方法
Mar 05 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.ini中文版(1)
2006/10/09 PHP
使用VisualStudio开发php的图文设置方法
2010/08/21 PHP
php程序的国际化实现方法(利用gettext)
2011/08/14 PHP
PHP生成指定范围内的N个不重复的随机数
2019/03/18 PHP
Laravel 5.5 实现禁用用户注册示例
2019/10/24 PHP
动手学习无线电
2021/03/10 无线电
javascript中使用replaceAll()函数实现字符替换的方法
2010/12/25 Javascript
jquery validate poshytip 自定义样式
2012/11/26 Javascript
node.js中的buffer.copy方法使用说明
2014/12/14 Javascript
jQuery实现订单提交页发送短信功能前端处理方法
2016/07/04 Javascript
angular双向绑定模拟探索
2016/12/26 Javascript
vue实现todolist单页面应用
2017/04/11 Javascript
详解VUE 对element-ui中的ElTableColumn扩展
2018/03/28 Javascript
JavaScript实现JSON合并操作示例【递归深度合并】
2018/09/07 Javascript
vue 使用 canvas 实现手写电子签名
2020/03/06 Javascript
vue中keep-alive、activated的探讨和使用详解
2020/07/26 Javascript
js仿京东放大镜效果
2020/08/09 Javascript
解决vant-UI库修改样式无效的问题
2020/11/03 Javascript
原生jQuery实现只显示年份下拉框
2020/12/24 jQuery
js面向对象封装级联下拉菜单列表的实现步骤
2021/02/08 Javascript
[02:19]DOTA选手解说齐贺岁
2018/02/11 DOTA
对Django url的几种使用方式详解
2019/08/06 Python
Pycharm中出现ImportError:DLL load failed:找不到指定模块的解决方法
2019/09/17 Python
Python 实现PS滤镜的旋涡特效
2020/12/03 Python
详解HTML5之pushstate、popstate操作history,无刷新改变当前url
2017/03/15 HTML / CSS
HTML中meta标签及Keywords
2020/04/15 HTML / CSS
工业学校毕业生自荐书
2014/01/03 职场文书
学术会议欢迎词
2014/01/09 职场文书
大课间活动实施方案
2014/03/06 职场文书
超市中秋节促销方案
2014/03/21 职场文书
活动总结报告格式
2014/05/09 职场文书
关于教师节的广播稿
2014/09/10 职场文书
银行奉献演讲稿
2014/09/16 职场文书
给客户的检讨书
2014/12/21 职场文书
php字符串倒叙
2021/04/01 PHP
pytorch查看网络参数显存占用量等操作
2021/05/12 Python