您好,登錄后才能下訂單哦!
這篇文章主要介紹了如何在PHP中強制轉換類型,此處通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考價值,需要的朋友可以參考下:
php是一個嵌套的縮寫名稱,是英文超級文本預處理語言,它的語法混合了C、Java、Perl以及php自創新的語法,主要用來做網站開發,許多小型網站都用php開發,因為php是開源的,從而使得php經久不衰。
看下面的代碼,可以說你絕對不可能說出正確的答案。
echo (int) 123.999999999999999;
echo (int) -1.999999999999999;
echo (int) -1.9999999999999999;
echo (int) -0.99999999999999999;
echo (int) -10.999999999999999;
echo (int) -1000.9999999999999;
echo (int) -9999999999;
系統環境win7 X86
得到的結果如下
124
-1
-2
-1
-10
-1001
-1410065407
官方給出的說法是:
當從浮點數轉換成整數時,將向零取整。
如果浮點數超出了整數范圍(通常為 +/- 2.15e+9 = 2^31),則結果不確定,因為沒有足夠的精度使浮點數給出一個確切的整數結果。在此情況下沒有警告,甚至沒有任何通知!
說了這么多,總結就一句話:精度不夠關我鳥事!
看到這里,你可能會認為我上面舉的例子有點牽強。因為根本不可能用到那么高的精度。
那么,我們來看下面的這個例子。
echo (int) ( (0.1+0.7) * 10 );
不用猜了,這里的執行結果是---7!
對,你沒看錯,我也沒敲錯,結果是 7 ,而不是我們通常認為的 8 。
現在,你知道PHP有多么操蛋了吧!
PHP官方有這么一句警告:
決不要將未知的分數強制轉換為 integer,這樣有時會導致不可預料的結果。
當然,上面的那個例子可以這樣來處理。
x$num = (0.1 + 0.7) * 10;
echo (int) $num;
到此這篇關于如何在PHP中強制轉換類型的文章就介紹到這了,更多相關如何在PHP中強制轉換類型的內容請搜索億速云以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持億速云!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。