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手册上的解释:
将0.1和0.7转化成二进制格式进行计算再换算成十进制,也就明白了其中的妙处。
另外,提醒自己,在调用函数的时候,除了要注意功能和使用场景外,更要清楚知道其变量的数据类型及其使用范围。
本文出自 “起步不止步” 博客,请务必保留此出处http://lolo091.blog.51cto.com/4883042/1360862
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。