当前位置: 首页 > news >正文

知识产权网站建设/百度人工客服

知识产权网站建设,百度人工客服,合肥专业建设网站,做网站最简单的方法今天我们来看一个在 PHP 中比较有意思的事&#xff1a;浮点数(floats) <?php die(var_dump(1200.85 * 100 120085)); 你认为上面的代码会出现什么结果呢&#xff1f;1. true 2. false 3. 这种比较视情况而定 其实很简单&#xff0c;因为在这里&#xff0c;我们使用了 来做…

今天我们来看一个在 PHP 中比较有意思的事:浮点数(floats)

<?php
die(var_dump(1200.85 * 100 === 120085));

你认为上面的代码会出现什么结果呢?1. true 2. false 3. 这种比较视情况而定

其实很简单,因为在这里,我们使用了 === 来做比较,所以这个结果很清晰的就是 false,
因为我们左边是一个 floats 类似的数,右边是一个 int 类型的数。
这是没什么可以特别讨论的。

那如果是这样呢?

<?php
die(var_dump(1200.85 * 100 == 120085));

就是我们使用 == 来比较的时候呢?

你可能会这样想:左边 120085,右边 120085,所以结果是 true。

如果你这样想的话,那你就错了。其实你运行上面的代码,结果回是 false。

然而,我是说然而!你再尝试修改一下数字,在运行一次代码,比如这样:

<?php
die(var_dump(1200.81 * 100 == 120081));

你会发现结果非常神奇,这个时候结果是 true,所以说,这种比较其实还真是视情况而定

那么问题出现在哪里呢?我们试着运行下面的代码:

<?php 
var_dump(1200.85 * 100);
die(var_dump(120085));

结果会类似这样:

float(120085) int(120085)

好像没看出什么核心区别,我们这样再试试:

die(var_dump(120085 - 1200.85 * 100));

这个时候的结果应该是这样:

float(1.4551915228367E-11)

这就说明问题了,其实这个结果并不是 0 ,而是一个很小的 floats 类似的数。
如果你看 PHP 文档的时候:http://php.net/manual/zh/lang...
有注意那个很大的 Warning 的话,你应该就会明白:这里的核心问题其实就是浮点数的精度!

那这样的话,我们如何比较才是我们期望的值呢?

答案就是使用 round() 函数,像是这样:

die(var_dump(round(1200.85 * 100) == 120085));

所以吧,在使用 PHP 做这些精度计算比较的时候,一定要实测它的比较结果,或者是使用一些保险的手段进行比较,不然就会吃大亏!
关注公众号 codecasts ,每天更新 PHP Laravel 技能
图片描述

http://www.jmfq.cn/news/5185603.html

相关文章:

  • 服装设计公司排名前十强/广州百度网站排名优化
  • 中央人民政府网官网/网站排名优化价格
  • 免费建站论坛/百度广告推广怎么做
  • 哪个网站可以做c 的项目/最近在线直播免费观看
  • 微信公众号链接网站怎么做/开封网络推广公司
  • 广州 做网站/泰安网络推广培训
  • 网络创业培训平台/sem优化师是什么意思
  • 如何找外贸网站建设公司/找客户的软件有哪些
  • 受欢迎的锦州网站建设/玉溪seo
  • 网站基本模板/yw77731域名查询
  • 深圳网站开发/企业营销管理
  • 优秀企业网站设计/google chrome
  • 柳州做网站优化/营销网站案例
  • 自己做网站需要下载什么软件/软件商店安装
  • 乌兰察布做网站/公司网站建设全包
  • php网站留言/广州网站优化服务商
  • 网站策划建站/百度天眼查
  • 做网站哪家好 青岛/武汉做seo
  • java做视频网站/百度一下首页版
  • 网站建设保教/中国十大互联网公司排名
  • ip地址做网站/网站内容优化怎么去优化呢
  • 自己做资金盘网站/营销型网站建设目标
  • 北京网站建设1000zhu/搜索数据
  • 114百事通做网站600/律师推广网站排名
  • 苏州网站建设技术/刷百度指数
  • 科技公司起名字大全免费/肇庆seo排名外包
  • 备案注销网站还有吗/网站建设需要啥
  • 互联网行业网站建设/福建seo顾问
  • 前端做项目网站/百度在线
  • 公司网站的开发/小说排行榜