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面向对象
Feb 22 PHP
基于php设计模式中工厂模式详细介绍
May 15 PHP
编译php 5.2.14+fpm+memcached(具体操作详解)
Jun 18 PHP
解析thinkphp中的导入文件标签
Jun 20 PHP
浅析关于PHP位运算的简单权限设计
Jun 30 PHP
成为好程序员必须避免的5个坏习惯
Jul 04 PHP
php隐藏IP地址后两位显示为星号的方法
Nov 21 PHP
8个PHP程序员常用的功能汇总
Dec 18 PHP
使用PHP实现阻止用户上传成人照片或者裸照
Dec 25 PHP
PHP使用NuSOAP调用Web服务的方法
Jul 18 PHP
PHP中模拟链表和链表的基本操作示例
Feb 27 PHP
laravel Model 执行事务的实现
Oct 10 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
如何使用脚本模仿登陆过程
2006/11/22 PHP
php查看session内容的函数
2008/08/27 PHP
PHP5.3与5.5废弃与过期函数整理汇总
2014/07/10 PHP
Laravel如何同时连接多个数据库详解
2019/08/13 PHP
php ActiveMQ的安装与使用方法图文教程
2020/02/23 PHP
用js怎么把&amp;字符换成&quot;&amp;amp:&quot;
2006/10/19 Javascript
window.parent调用父框架时 ie跟火狐不兼容问题
2009/07/30 Javascript
IE8 中使用加速器(Activities)
2010/05/14 Javascript
Jquery Ajax的Get方式时需要注意URL地方
2011/04/07 Javascript
javascript获取鼠标位置部分的实例代码(兼容IE,FF)
2013/08/05 Javascript
jQuery实现仿淘宝带有指示条的图片转动切换效果完整实例
2015/03/04 Javascript
window.location.reload 刷新使用分析(去对话框)
2015/11/11 Javascript
JavaScript中访问id对象 属性的方式访问属性(实例代码)
2016/10/28 Javascript
jQuery 遍历map()方法详解
2016/11/04 Javascript
vue axios 给生产环境和发布环境配置不同的接口地址(推荐)
2018/05/08 Javascript
Vue.use源码学习小结
2018/06/20 Javascript
浅析vue-router jquery和params传参(接收参数)$router $route的区别
2018/08/03 jQuery
nuxt+axios实现打包后动态修改请求地址的方法
2020/04/22 Javascript
python中文编码问题小结
2014/09/28 Python
Python计算程序运行时间的方法
2014/12/13 Python
Python检测生僻字的实现方法
2016/10/23 Python
Python通过调用mysql存储过程实现更新数据功能示例
2018/04/03 Python
利用django-suit模板添加自定义的菜单、页面及设置访问权限
2018/07/13 Python
Python流程控制 if else实现解析
2019/09/02 Python
python3下pygame如何实现显示中文
2020/01/11 Python
纯CSS3制作页面切换效果的实例代码
2019/05/30 HTML / CSS
css3中less实现文字长阴影(long shadow)
2020/04/24 HTML / CSS
详解HTML5如何使用可选样式表为网站或应用添加黑暗模式
2020/04/07 HTML / CSS
绩效专员岗位职责
2013/12/02 职场文书
《巨人的花园》教学反思
2014/02/12 职场文书
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
2014年度工作总结报告
2014/12/15 职场文书
2016新年慰问信范文
2015/03/25 职场文书
2015年毕业生实习评语
2015/03/25 职场文书
python 实现两个变量值进行交换的n种操作
2021/06/02 Python
python通过函数名调用函数的几种方法总结
2021/06/07 Python