php整型

php整型,整型一個integer是集合Z={...,-2,-1,0,1,2,...}中的一個數。參見任意長度整數(GMP),浮點數和任意精度數學庫(BCMath)。

整型
一個integer是集合Z={...,-2,-1,0,1,2,...}中的一個數。
參見任意長度整數(GMP),浮點數和任意精度數學庫(BCMath)。
語法
整型值可以用十進制,十六進制或八進制符號指定,前面可以加上可選的符號(-或者+)。
如果用八進制符號,數字前必須加上0(零),用十六進制符號數字前必須加上0x。
例子11-1.整數文字表達
<?php
$a=1234;//十進制數
$a=-123;//一個負數
$a=0123;//八進制數(等於十進制的83)
$a=0x1A;//十六進制數(等於十進制的26)
?>整型數的字長和平台有關,儘管通常最大值是大約二十億(32位有符號)。php不支持無符號整數。
例子11-2.八進制數的怪事
<?php
var_dump(01090);//010Octal=8decimal
?>整數溢出
如果給定的一個數超出了integer的範圍,將會被解釋為float。同樣如果執行的運算結果超出了integer範圍,也會返回float。
<?php
$large_number=2147483647;
var_dump($large_number);
//輸出為:int(2147483647)
$large_number=2147483648;
var_dump($large_number);
//輸出為:float(2147483648)
//同樣也適用於十六進制表示的整數:
var_dump(0x80000000);
//輸出為:float(2147483648)
$million=1000000;
$large_number=50000*$million;
var_dump($large_number);
//輸出為:float(50000000000)
?>php中沒有整除的運算符。1/2產生出float0.5。可以總是捨棄小數部分,或者使用round()函式。
<?php
var_dump(25/7);//float(3.5714285714286)
var_dump((int)(25/7));//int(3)
var_dump(round(25/7));//float(4)
?>轉換為整形
要明示地將一個值轉換為integer,用(int)或(integer)強制轉換。不過大多數情況下都不需要強制轉換,因為當運算符,函式或流程控制需要一個integer參數時,值會自動轉換。還可以通過函式intval()來將一個值轉換成整型。
參見類型戲法。
從布爾值轉換
FALSE將產生出0(零),TRUE將產生出1(壹)。
從浮點數轉換
當從浮點數轉換成整數時,數字將被取整(丟棄小數位)。
如果浮點數超出了整數範圍(通常為+/-2.15e+9=2^31),則結果不確定,因為沒有足夠的精度使浮點數給出一個確切的整數結果。在此情況下沒有警告,甚至沒有任何通知!
【譯者注】在Linux下返回結果是最小負數(-2147483648),而在Windows下返回結果是零(0)。
<?php
echo(int)((0.1+0.7)*10);//顯示7!
?>

相關詞條

熱門詞條

聯絡我們