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中通过ADO调用Asscess数据库和COM程序
Oct 09 PHP
PHP的面试题集
Nov 19 PHP
PHP伪造referer实例代码
Sep 20 PHP
PHP 文件系统详解
Sep 13 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
Jun 03 PHP
PHP加密解密字符串汇总
Apr 26 PHP
PHP准确取得服务器IP地址的方法
Jun 02 PHP
Laravel 5.1 on SAE环境开发教程【附项目demo源码】
Oct 09 PHP
PHP实现Markdown文章上传到七牛图床的实例内容
Feb 11 PHP
php7 错误处理机制修改实例分析
May 25 PHP
PHP实现爬虫爬取图片代码实例
Mar 03 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数据库万能引擎类adodb配置使用以及实例集锦
2014/06/12 PHP
php中$_POST与php://input的区别实例分析
2015/01/07 PHP
ajax+php控制所有后台函数调用
2015/07/15 PHP
PHP函数shuffle()取数组若干个随机元素的方法分析
2016/04/02 PHP
php处理复杂xml数据示例
2016/07/11 PHP
YII中Ueditor富文本编辑器文件和图片上传的配置图文教程
2017/03/15 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
phpstudy后门rce批量利用脚本的实现
2019/12/12 PHP
Jquery操作下拉框(DropDownList)实现取值赋值
2013/08/13 Javascript
js冒泡法和数组转换成字符串示例代码
2013/08/14 Javascript
JS实现图片翻书效果示例代码
2013/09/09 Javascript
js计算字符串长度包含的中文是utf8格式
2013/10/15 Javascript
IE8中动态创建script标签onload无效的解决方法
2014/12/22 Javascript
JavaScript获取伪元素(Pseudo-Element)属性的方法技巧
2015/03/13 Javascript
jquery模拟进度条实现方法
2015/08/03 Javascript
jQuery 控制文本框自动缩小字体填充
2017/06/16 jQuery
基于vue 实现token验证的实例代码
2017/12/14 Javascript
Vue移动端实现图片上传及超过1M压缩上传
2019/12/23 Javascript
ES6 Generator基本使用方法示例
2020/06/06 Javascript
[36:33]完美世界DOTA2联赛PWL S2 LBZS vs Forest 第二场 11.29
2020/12/02 DOTA
Python将阿拉伯数字转换为罗马数字的方法
2015/07/10 Python
TensorFlow saver指定变量的存取
2018/03/10 Python
python实现图片筛选程序
2018/10/24 Python
Python实现制度转换(货币,温度,长度)
2019/07/14 Python
selenium WebDriverWait类等待机制的实现
2020/03/18 Python
如何让python的运行速度得到提升
2020/07/08 Python
HTML5使用Audio标签实现歌词同步的效果
2016/03/17 HTML / CSS
馥蕾诗美国官网:Fresh美国
2019/10/09 全球购物
信息管理专业学生自荐信格式
2013/09/22 职场文书
假日旅行社实习自我鉴定
2013/09/24 职场文书
项目施工员岗位职责
2014/03/09 职场文书
2015秋季开学演讲稿范文
2015/07/16 职场文书
2016年过年放假安排通知
2015/08/18 职场文书
2019年大学生学年自我鉴定!
2019/03/25 职场文书
pytorch实现线性回归以及多元回归
2021/04/11 Python
python通过函数名调用函数的几种方法总结
2021/06/07 Python