网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

php7采坑记:浮点型数据比较

    今天在项目中遇到一个奇怪的问题,经过计算后的double类型的变量的值相等的两个变量进行比较,结果却是不相等。

站在用户的角度思考问题,与客户深入沟通,找到西塞山网站设计与西塞山网站推广的解决方案,凭借多年的经验,让设计与互联网技术结合,创造个性化、用户体验好的作品,建站类型包括:网站设计制作、成都网站制作、企业官网、英文网站、手机端网站、网站推广、空间域名、网页空间、企业邮箱。业务覆盖西塞山地区。

得到结果如下图,明明两个变量的值是一样的,做'=='比较运算却返回false

php7采坑记:浮点型数据比较

原因是php7中的浮点数 经过 /,*,round()等一系列运算后,精度发生了变化。


解决方案:将任意精度的变量作为字符串进行比较。

php7中已经提供较好的解决方案.

(PHP 4, PHP 5, PHP 7)
bccomp — 比较两个任意精度的数字
说明
int bccomp( string $left_operand, string $right_operand[, int $scale = int
  ] )
把right_operand和left_operand作比较, 并且返回一个整数的结果.

最终使用bccomp()来进行比较解决问题

if(bccomp((string)$b,(string)$d,2) === 0){

    echo "yes \n";
}else{
    echo "no \n";
}


分享名称:php7采坑记:浮点型数据比较
网址分享:http://bjjierui.cn/article/jcehsh.html

其他资讯