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中$_SERVER[PHP_SELF] 和 $_SERVER[SCRIPT_NAME]之间的区别
Sep 05 PHP
精美漂亮的php分页类代码
Apr 02 PHP
php 创建以UNIX时间戳命名的文件夹(示例代码)
Mar 08 PHP
Yii入门教程之Yii安装及hello world
Nov 25 PHP
PHP实现搜索相似图片
Sep 22 PHP
PHP浮点比较大小的方法
Feb 14 PHP
PHP实现的浏览器检查类
Apr 11 PHP
Yii2使用自带的UploadedFile实现的文件上传
Jun 20 PHP
CI框架AR数据库操作常用函数总结
Nov 21 PHP
thinkPHP订单数字提醒功能的实现方法
Dec 01 PHP
PHP中trait使用方法详细介绍
May 21 PHP
PHP编程中的Session阻塞问题与解决方法分析
Aug 07 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
全国FM电台频率大全 - 25 云南省
2020/03/11 无线电
PHP imagecreatefrombmp 从BMP文件或URL新建一图像
2012/07/16 PHP
php获取客户端电脑屏幕参数的方法
2015/01/09 PHP
php+mysql查询优化简单实例
2015/01/13 PHP
PHP模块化安装教程
2016/06/01 PHP
Laravel相关的一些故障解决
2020/08/19 PHP
checkbox全选/取消全选以及checkbox遍历jQuery实现代码
2009/12/02 Javascript
jQuery 入门级学习笔记及源码
2010/01/22 Javascript
基于prototype扩展的JavaScript常用函数库
2010/11/30 Javascript
jQuery对Select的操作大集合(收藏)
2013/12/28 Javascript
一个CSS+jQuery实现的放大缩小动画效果
2014/02/19 Javascript
javaScript 逻辑运算符使用技巧整理
2017/05/03 Javascript
vue.js中Vue-router 2.0基础实践教程
2017/05/08 Javascript
JS 组件系列之BootstrapTable的treegrid功能
2017/06/16 Javascript
JS实现下拉菜单列表与登录注册弹窗效果
2017/08/10 Javascript
详解PHP后期静态绑定分析与应用
2018/03/21 Javascript
Vue数据监听方法watch的使用
2018/03/28 Javascript
VUE v-model表单数据双向绑定完整示例
2019/01/21 Javascript
微信小程序实现蓝牙打印
2019/09/23 Javascript
Vue简单实现原理详解
2020/05/07 Javascript
Vue中的nextTick作用和几个简单的使用场景
2021/01/25 Vue.js
python 基础学习第二弹 类属性和实例属性
2012/08/27 Python
python中nan与inf转为特定数字方法示例
2017/05/11 Python
python实现Decorator模式实例代码
2018/02/09 Python
pytorch sampler对数据进行采样的实现
2019/12/31 Python
tensorflow 获取checkpoint中的变量列表实例
2020/02/11 Python
如何在Python 游戏中模拟引力
2020/03/27 Python
详解PyQt5中textBrowser显示print语句输出的简单方法
2020/08/07 Python
交通安全标语
2014/06/06 职场文书
2014年科室工作总结
2014/11/20 职场文书
灵山大佛导游词
2015/02/04 职场文书
中标通知书范本
2015/04/17 职场文书
2015年保育员个人工作总结
2015/05/13 职场文书
高考百日冲刺决心书
2015/09/23 职场文书
2016年幼儿园万圣节活动总结
2016/04/05 职场文书
如何利用Python实现一个论文降重工具
2021/07/09 Python