为了账号安全,请及时绑定邮箱和手机立即绑定

PHP入门(一):关于浮点数的小细节

标签:
PHP

导师培训出了这样一个题目:

 echo $a = floor((0.1+0.8)*10);

查了查floor()函数的解释,如以下所示:

   “返回不大于 value 的下一个整数,将 value 的小数部分舍去取整。floor() 返回的类型仍然是 float,因为 float 值的范围通常比 integer 要大。”

   实践和手酸都得出,上题答案是:9.

   你认为自己学会了这个函数了么?或者说彻底理解了浮点型了么?

让我们试试另一个特殊的题目:

  echo $a = floor((0.1+0.7)*10);

这个语句会输出什么结果呢?

8?

不!

实际上,输出的是:7!

   这是因为我们注意力都放在了函数的功能实现上,因而忽略了返回类型是浮点型这一特点。

让我们继续看看 php手册上的解释:

wKioL1MExUagBvEQAAIlhQOanfc185.jpg

将0.1和0.7转化成二进制格式进行计算再换算成十进制,也就明白了其中的妙处。


另外,提醒自己,在调用函数的时候,除了要注意功能和使用场景外,更要清楚知道其变量的数据类型及其使用范围。

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消