十年網(wǎng)站開(kāi)發(fā)經(jīng)驗(yàn) + 多家企業(yè)客戶 + 靠譜的建站團(tuán)隊(duì)
量身定制 + 運(yùn)營(yíng)維護(hù)+專業(yè)推廣+無(wú)憂售后,網(wǎng)站問(wèn)題一站解決
這篇文章主要介紹了如何在PHP中強(qiáng)制轉(zhuǎn)換類型,此處通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考價(jià)值,需要的朋友可以參考下:
php是一個(gè)嵌套的縮寫(xiě)名稱,是英文超級(jí)文本預(yù)處理語(yǔ)言,它的語(yǔ)法混合了C、Java、Perl以及php自創(chuàng)新的語(yǔ)法,主要用來(lái)做網(wǎng)站開(kāi)發(fā),許多小型網(wǎng)站都用php開(kāi)發(fā),因?yàn)閜hp是開(kāi)源的,從而使得php經(jīng)久不衰。
看下面的代碼,可以說(shuō)你絕對(duì)不可能說(shuō)出正確的答案。
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;
系統(tǒng)環(huán)境win7 X86
得到的結(jié)果如下
124
-1
-2
-1
-10
-1001
-1410065407
官方給出的說(shuō)法是:
當(dāng)從浮點(diǎn)數(shù)轉(zhuǎn)換成整數(shù)時(shí),將向零取整。
如果浮點(diǎn)數(shù)超出了整數(shù)范圍(通常為 +/- 2.15e+9 = 2^31),則結(jié)果不確定,因?yàn)闆](méi)有足夠的精度使浮點(diǎn)數(shù)給出一個(gè)確切的整數(shù)結(jié)果。在此情況下沒(méi)有警告,甚至沒(méi)有任何通知!
說(shuō)了這么多,總結(jié)就一句話:精度不夠關(guān)我鳥(niǎo)事!
看到這里,你可能會(huì)認(rèn)為我上面舉的例子有點(diǎn)牽強(qiáng)。因?yàn)楦静豢赡苡玫侥敲锤叩木取?/p>
那么,我們來(lái)看下面的這個(gè)例子。
echo (int) ( (0.1+0.7) * 10 );
不用猜了,這里的執(zhí)行結(jié)果是---7!
對(duì),你沒(méi)看錯(cuò),我也沒(méi)敲錯(cuò),結(jié)果是 7 ,而不是我們通常認(rèn)為的 8 。
現(xiàn)在,你知道PHP有多么操蛋了吧!
PHP官方有這么一句警告:
決不要將未知的分?jǐn)?shù)強(qiáng)制轉(zhuǎn)換為 integer,這樣有時(shí)會(huì)導(dǎo)致不可預(yù)料的結(jié)果。
當(dāng)然,上面的那個(gè)例子可以這樣來(lái)處理。
x$num = (0.1 + 0.7) * 10;
echo (int) $num;
到此這篇關(guān)于如何在PHP中強(qiáng)制轉(zhuǎn)換類型的文章就介紹到這了,更多相關(guān)如何在PHP中強(qiáng)制轉(zhuǎn)換類型的內(nèi)容請(qǐng)搜索創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持創(chuàng)新互聯(lián)網(wǎng)站建設(shè)公司,!