導師培訓出了這樣一個題目:
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轉化成二進制格式進行計算再換算成十進制,也就明白了其中的妙處。
另外,提醒自己,在調用函數的時候,除了要注意功能和使用場景外,更要清楚知道其變量的數據類型及其使用範圍。