首先看一段代码:

首先看一段代码:<?php
$a = 0.1;
$b = 0.7;
var_dump(($a + $b) == 0.8);打印出来的值居然为 boolean false

PHP手册摘录如下:

Warning 
浮点数精度
显然简单的十进制分数如同 0.1 或 0.7 不能在不丢失一点点精度的情况下转换为内部二进制的格式。这就会造成混乱的结果:例如,floor((0.1+0.7)*10) 通常会返回 7 而不是预期中的 8,因为该结果内部的表示其实是类似 7.9999999999...。 
这和一个事实有关,那就是不可能精确的用有限位数表达某些十进制分数。例如,十进制的 1/3 变成了 0.3333333. . .。


解决办法也不难,php提供了两个函数bcadd()和bcsub().

<?php
$a = 0.1;
$b = 0.7;
var_dump(bcadd($a,$b,2) == 0.8);//输出为boolean true

当然还有一种办法,就是将mysql的相应字段类型设置为更加精准的decimal类型。

转载于:https://www.cnblogs.com/phper12580/p/10551932.html

PHP下的浮点运算不准的解决办法相关推荐

  1. Vista下控件无法安装解决办法

    Vista下控件无法安装解决办法 IE浏览器设置恢复为默认值:   1.  点击浏览器菜单栏上的工具->Internet选项->安全,选择internet区域,如[默认级别]按钮不是灰的, ...

  2. (笔记)Linux Root下的.gvfs出现异常解决办法

    (笔记)Linux Root下的.gvfs出现异常解决办法 参考文章: (1)(笔记)Linux Root下的.gvfs出现异常解决办法 (2)https://www.cnblogs.com/tdyi ...

  3. nginx+passenger下504 Gateway-Timeout问题的解决办法

    nginx+passenger下504 Gateway-Timeout问题的解决办法 关键字: passenger nginx apache gateway timeout ubuntu9.04下,n ...

  4. linux下telnet失败怎么处理,CentOS下telnet退出失败的解决办法

    最近有CentOS用户反映在调试网络程序时出现了问题,服务虽然启动了,但客户端却无法连接上,用telnet连接后发现是Windows防火墙的问题,可是用telnet命令连接成功后发现退不出去了,这该怎 ...

  5. windows下git bash中文乱码解决办法

    一.解决办法1:(直接上图) 1.在git bash下,右键 出现下图,选择options: 2.选择"Text" 3.将"Character set"设置为 ...

  6. opencv ubuntu 汉字_ubuntu下没有中文输入法的解决办法

    ubuntu下没有中文输入法的解决办法! 我们在安装虚拟机或者ubuntu系统的时候,常见的是尽管是中文版本的但却没有中文输入法,确实是一件很恼火的事情! 我自己也亲身经历过,特此给大家提供一种方法, ...

  7. ubuntu下没有中文输入法的解决办法!

    ubuntu下没有中文输入法的解决办法! 我们在安装虚拟机或者ubuntu系统的时候,常见的是尽管是中文版本的但却没有中文输入法,确实是一件很恼火的事情! 我自己也亲身经历过,特此给大家提供一种方法, ...

  8. VS代码中文注释下有红色波浪线解决办法

    VS代码中文注释下有红色波浪线解决办法 打开VS导入代码后,发现了许多错误,一一改正后可以运行了,真的是nice !但是仔细一看,代码文件中的中文注释下面都有红色波浪线,纳,作为程序员对于红色波浪线简 ...

  9. Ubuntu16.04系统下汉字显示为方框解决办法

    Ubuntu16.04系统下汉字显示为方框解决办法 问题详情 打开Ubuntu系统,发现中文变方框了 问题分析 之前中文显示好好的,突然就中文变方框了.原先以为是语言的问题,后面换成了别的中文样式,发 ...

最新文章

  1. 自己整合优化的一个Android框架
  2. JavaScript原理学习
  3. 搜索,然后学习:两阶段的无监督文本生成
  4. MFC开发IM-第十一篇、MFC设置对话框的背景颜色及设置透明
  5. es ik分词插件安装
  6. codevs1287 矩阵乘法
  7. App推荐:这样的网易云,才是你想要的
  8. 凸优化第二章凸集 2.2 重要例子(仿射集合和凸集)
  9. Postgresql的基本操作
  10. 如何批量设置 Word 文档的只读密码?
  11. Edge浏览器中使用IE浏览器网站
  12. 欧洲杯第一周的比赛闲聊
  13. 中企海外周报 | 传祺GM6将亮相北美车展,锦江都城发力布局全球
  14. 为河南小伙恩辉舍己救人点赞<原创>
  15. java自动拼图_java 拼图游戏完整源码,图片剪切,包含拼图自动还原功能
  16. 小米电视5和5pro区别
  17. Uncertainty Modeling and Optimization-不确定性建模与优化-理论篇(高速更新中)
  18. 网易云短信接口调入(java)
  19. Apache htaccess 重写如果文件存在!
  20. Day24-Ajax

热门文章

  1. 自定义listView添加滑动删除功能
  2. 找出重复的那个数字的异或算法
  3. Linux 学习之虚拟机下的网络连接
  4. 【玩转Golang】 通过组合嵌入实现代码复用
  5. ValueError: invalid \x escape
  6. 利用XML实现通用WEB报表打印(转载)
  7. c语言:一个C文件可否调用另一个c文件中的函数
  8. 关于hive开窗函数的问题
  9. 团队项目-北航MOOC系统Android客户端 NABC
  10. 类库探源——System.Exception