PHP 數字
在本章中,我們將深入探討整數、浮點數和數字字串。
PHP 數字
PHP 中有三種主要的數字型別
整數
浮點數
數字字串
此外,PHP 還有兩種用於數字的資料型別
Infinity
NaN
數字型別的變數在賦值時建立。
示例
$a = 5;
$b = 5.34;
$c = "25";
要驗證 PHP 中任何物件的型別,請使用 var_dump()
函式。
PHP 整數
2, 256, -256, 10358, -179567 都是整數。
整數是沒有小數部分的數字。
在 32 位系統上,整數資料型別是一個介於 -2147483648 和 2147483647 之間的非小數數字,在 64 位系統上,介於 -9223372036854775808 和 9223372036854775807 之間。大於(或小於)此值的數將被儲存為浮點數,因為它超出了整數的限制。
注意: 另一個需要知道的重要事情是,即使 4 * 2.5 等於 10,結果也會儲存為浮點數,因為其中一個運算元是浮點數 (2.5)。
以下是整數的一些規則:
- 整數必須至少有一個數字。
- 整數不能有小數點。
- 整數可以是正數或負數。
- 整數可以用三種格式指定:十進位制(基數 10)、十六進位制(基數 16 - 字首為 0x)、八進位制(基數 8 - 字首為 0)或二進位制(基數 2 - 字首為 0b)。
PHP 具有以下預定義的整數常量:
PHP_INT_MAX
- 支援的最大整數。PHP_INT_MIN
- 支援的最小整數。PHP_INT_SIZE
- 整數的大小(位元組)。
PHP 具有以下函式來檢查變數的型別是否為整數:
is_int()
is_integer()
-is_int()
的別名。is_long()
-is_int()
的別名。
PHP 浮點數
浮點數是帶小數點或指數形式的數字。
2.0, 256.4, 10.358, 7.64E+5, 5.56E-5 都是浮點數。
浮點數資料型別通常可以儲存高達 1.7976931348623E+308(取決於平臺)的值,並且最大精度為 14 位數字。
PHP 具有以下預定義的浮點數常量(自 PHP 7.2 起):
PHP_FLOAT_MAX
- 最大可表示的浮點數。PHP_FLOAT_MIN
- 最小可表示的正浮點數。PHP_FLOAT_DIG
- 可以舍入到浮點數然後轉換回來而不會損失精度的小數位數。PHP_FLOAT_EPSILON
- 最小的可表示正數 x,使得 x + 1.0 != 1.0。
PHP 具有以下函式來檢查變數的型別是否為浮點數:
is_float()
is_double()
-is_float()
的別名。
PHP 無窮大
大於 PHP_FLOAT_MAX
的數值被視為無窮大。
PHP 具有以下函式來檢查數值是否為有限數或無窮大:
但是,PHP 的 var_dump()
函式會返回資料型別和值。
PHP NaN
NaN
是 Not a Number(非數字)的縮寫。
NaN
用於不可能的數學運算。
PHP 具有以下函式來檢查一個值是否不是數字:
但是,PHP 的 var_dump()
函式會返回資料型別和值。
PHP 數字字串
PHP 的 is_numeric()
函式可用於查詢變數是否為數字。如果變數是數字或數字字串,則函式返回 true,否則返回 false。
示例
檢查變數是否為數字。
$x = 5985;
var_dump(is_numeric($x));
$x = "5985";
var_dump(is_numeric($x));
$x = "59.85" + 100;
var_dump(is_numeric($x));
$x = "Hello";
var_dump(is_numeric($x));
自己動手試一試 »
注意:自 PHP 7.0 起:is_numeric()
函式將對十六進位制形式的數字字串(例如 0xf4c3b00c)返回 FALSE,因為它們不再被視為數字字串。
PHP 字串和浮點數轉換為整數
有時您需要將數值轉換為其他資料型別。
函式 (int)
、(integer)
和 intval()
通常用於將值轉換為整數。
示例
將浮點數和字串轉換為整數。
// Cast float to int
$x = 23465.768;
$int_cast = (int)$x;
echo $int_cast;
echo "<br>";
// Cast string to int
$x = "23465.768";
$int_cast = (int)$x;
echo $int_cast;
自己動手試一試 »
在 PHP 型別轉換章節瞭解更多關於型別轉換的資訊。