PHP數字處理函式
一、常用函式說明:
Abs: 取得絕對值。
Acos: 取得反餘弦值。
Asin: 取得反正弦值。
Atan: 取得反正切值。
Atan2: 計算二數的反正切值。
base_convert: 轉換數字的進位方式。
BinDec: 二進位轉成十進位。
Ceil: 計算大於指定數的最小整數。
Cos: 餘弦計算。
DecBin: 十進位轉二進位。
DecHex: 十進位轉十六進位。
DecOct: 十進位轉八進位。
Exp: 自然對數 e 的次方值。
Floor: 計算小於指定數的最大整數。
getrandmax: 隨機數的最大值。
HexDec: 十六進位轉十進位。
Log: 自然對數值。
Log10: 10 基底的對數值。
max: 取得最大值。
min: 取得最小值。
mt_rand: 取得隨機數值。
mt_srand: 配置隨機數種子。
mt_getrandmax: 隨機數的最大值。
number_format: 格式化數字字串。
OctDec: 八進位轉十進位。
pi: 圓周率。
pow: 次方。
rand: 取得隨機數值。
round: 四捨五入。
Sin: 正弦計算。
Sqrt: 開平方根。
srand: 配置隨機數種子。
Tan: 正切計算。
二、函式分析如下:
Abs
取得絕對值。
語法: mixed abs(mixed number);
返回值: 混合型別資料
函式種類: 數學運算
內容說明: 返回引數 number 的絕對值。若 number 是倍精確浮點數,則返回值也是倍浮點數;其它的型別則返回型別為整數。
Acos
取得反餘弦值。
語法: float acos(float arg);
返回值: 浮點數
函式種類: 數學運算
內容說明: 返回引數 arg 的反餘弦值 (arc cosine)。
參考: asin() atan()
Asin
取得反正弦值。
語法: float asin(float arg);
返回值: 浮點數
函式種類: 數學運算
內容說明: 返回引數 arg 的反正弦值 (arc sine)。
參考: acos() atan()
Atan
取得反正切值。
語法: float atan(float arg);
返回值: 浮點數
函式種類: 數學運算
內容說明: 返回引數 arg 的反正切值 (arc tangent)。
Atan2
計算二數的反正切值。
語法: float atan2(float y, float x);
返回值: 浮點數
函式種類: 數學運算
內容說明: 本函式用來計算二數 y、x 的反正切值,計算結果與 atan() 計算 y/x 類似,但本函式會因 x、y 的正負號影響結果。而本函式的返回值必落在正負的圓周率間 (-PI <= (值) ≶= PI)
參考 acos() atan() asin()
base_convert
轉換數字的進位方式。
語法: string base_convert(string number, int frombase, int tobase);
返回值: 字串
函式種類: 數學運算
內容說明: 本函式將數字字串 number 從以 frombase 進位轉換到以 tobase 進位。本式能夠處理的由以二進位到以三十六進位之間的進位方式。在十進位之前都是以數字表示,而在超過十進位之後就用英文字母表示。例如十六進位個位數依序為 123456789abcdef,10 的順序是第十七個,這時才進一位。而三十六進位 a 是第十個、b 為第十一個、z 為第三十六個、10 是第三十七個,這時才進位。
使用範例
本例將十六進位字串轉成二進位字串
1 2 3 4 |
<?php
$binary = base_convert ( $hexadecimal , 16, 2);
echo "十六進位字串" $hexadecimal "轉成二進位為" $binary "。" ;
?>
|
BinDec
二進位轉成十進位。
語法: int bindec(string binary_string);
返回值: 整數
函式種類: 數學運算
內容說明: 本函式將二進位數字字串轉成十進位的整數。由於 PHP 使用 32 位有正負號整數計算,能處理的最大十進位數字為 2147483647,也就是二進位數字的 1111111111111111111111111111111 (31 個 1)。
參考: DecBin()
Ceil
計算大於指定數的最小整數。
語法: int ceil(float number);
返回值: 整數
函式種類: 數學運算
內容說明: 本函式用來計算比浮點引數 number 大的最小整數。
使用範例
本例返回值為 4。
1 2 3 4 |
<?php
$nextint = ceil (3.14);
echo $nextint ;
?>
|
參考: Floor() round()
Cos
餘弦計算。
語法: float cos(float arg);
返回值: 浮點數
函式種類: 數學運算
內容說明: 本函式計算引數 arg 的餘弦值 (cosine)。
參考: Sin() Tan()
DecBin
十進位轉二進位。
語法: string decbin(int number);
返回值: 字串
函式種類: 數學運算
內容說明: 本函式將十進位數字轉成二進位字串。由於 PHP 使用 32 位有正負號整數計算,能處理的最大十進位數字為 2147483647,也就是二進位數字的 1111111111111111111111111111111 (31 個 1)。
參考: BinDec()
DecHex
十進位轉十六進位。
語法: string dechex(int number);
返回值: 字串
函式種類: 數學運算
內容說明: 本函式將十進位數字轉成十六進位字串。由於 PHP 使用 32 位有正負號整數計算,能處理的最大十進位數字為 2147483647,也就是十六進位數字 7fffffff。
參考: HexDec()
DecOct
十進位轉八進位。
語法: string decoct(int number);
返回值: 字串
函式種類: 數學運算
內容說明: 本函式將十進位數字轉成八進位字串。由於 PHP 使用 32 位有正負號整數計算,能處理的最大十進位數字為 2147483647,也就是八進位數字 17777777777。
參考: OctDec()
Exp
自然對數 e 的次方值。
語法: float exp(float arg);
返回值: 浮點數
函式種類: 數學運算
內容說明: 本函式計算自然對數 (natural logarithm) 的 arg 次方值。
參考: pow() Log()
Floor
計算小於指定數的最大整數。
語法: int floor(float number);
返回值: 整數
函式種類: 數學運算
內容說明: 本函式用來計算比浮點引數 number 小的最大整數。
使用範例
本例返回值為 3。
1 2 3 4 |
<?php
$lastint = floor (3.14);
echo $lastint ;
?>
|
參考: Ceil() round()
getrandmax
亂數的最大值。
語法: int getrandmax(void);
返回值: 整數
函式種類: 數學運算
內容說明: 本函式計算亂數函式 rand() 可能取得的取得的最大亂數值。本函式不需引數。
參考: rand() srand() mt_rand() mt_srand() mt_getrandmax()
HexDec
十六進位轉十進位。
語法: int hexdec(string hex_string);
返回值: 整數
函式種類: 數學運算
內容說明: 本函式將十六進位字串轉成十進位數字。由於 PHP 使用 32 位有正負號整數計算,能處理的最大十六進位數字為 7fffffff,也就是十進位數字的 2147483647。
參考: DecHex()
Log
自然對數值。
語法: float log(float arg);
返回值: 浮點數
函式種類: 數學運算
內容說明: 本函式計算引數 arg 的自然對數 (natural logarithm) 值。
Log10
10 基底的對數值。
語法: float log10(float arg);
返回值: 浮點數
函式種類: 數學運算
內容說明: 本函式計算引數 arg 的 10 基底對數值。
max
取得最大值。
語法: mixed max(mixed arg1, mixed arg2 .... mixed argn);
返回值: 混合型別資料
函式種類: 數學運算
內容說明: 本函式計算引數間的最大值。若第一個引數是數字陣列,則會找出該陣列的最大數字。若第一個引數非陣列,則需二個以上的引數。這些數字可以是整數、倍精確數或數字字串的型別。引數的數目不限,視使用者的需求而定。在計算時,只要有一個引數是倍精確數,本函式會將所有的引數都轉成倍精確數,並返回倍精確數。若引數只有整數及數字字串,則會將所有的引數轉換成整數,並返回整數。
參考: min()
min
取得最小值。
語法: mixed min(mixed arg1, mixed arg2 .... mixed argn);
返回值: 混合型別資料
函式種類: 數學運算
內容說明: 本函式計算引數間的最小值。若第一個引數是數字陣列,則會找出該陣列的最小數字。若第一個引數非陣列,則需二個以上的引數。這些數字可以是整數、倍精確數或數字字串的型別。引數的數目不限,視使用者的需求而定。在計算時,只要有一個引數是倍精確數,本函式會將所有的引數都轉成倍精確數,並返回倍精確數。若引數只有整數及數字字串,則會將所有的引數轉換成整數,並返回整數。
參考: max()
mt_rand
取得亂數值。
語法: int mt_rand([int min], [int max]);
返回值: 整數
函式種類: 數學運算
內容說明: 本函式不使用一般常用的 libc 來計算亂數值,而是使用計算速度至少快四倍的馬其賽特旋轉 (Mersenne Twister) 演演算法來計算亂數值。有關馬特賽特旋轉演演算法可在松本真的http://www.math.keio.ac.jp/~matumoto/emt.html找到更多的相關資訊,最佳化的原始程式則在http://www.scp.syr.edu/~marc/hawk/twister.html。若沒有指定亂數的最大及最小範圍,本函式會自動的從 0 到 RAND_MAX 中取一個亂數。若有指定 min 及 max 的引數,則從指定引數中取一個數字,例如 mt_rand(38, 49) 則會從 38 到 49 之間取一個亂數值。值得注意的是為使亂數的亂度最大,每次在取亂數之前最好使用 mt_srand() 以配置新的亂數種子。
參考: rand() srand() getrandmax() mt_srand() mt_getrandmax()
mt_srand
配置亂數種子。
語法: void mt_srand(int seed);
返回值: 無
函式種類: 數學運算
內容說明: 本函式傳入引數 seed 後,配置亂數的種子。值得注意的是引數 seed 值最好也是隨機出現的數字,例如利用加入時間做為變數的來源就是不錯的方法,或者開發其它的硬體周邊介面可取得更好的亂數。
使用範例
本例加入時間的因素,以執行時的百萬分之一秒當亂數種子
1 2 3 4 5 |
<?php
mt_srand((double)microtime()*1000000);
$randval = mt_rand();
echo $randval ;
?>
|
參考: rand() srand() getrandmax() mt_rand() mt_getrandmax()
mt_getrandmax
亂數的最大值。
語法: int mt_getrandmax(void);
返回值: 整數
函式種類: 數學運算
內容說明: 本函式計算亂數函式 mt_rand() 可能取得的取得的最大亂數值。本函式不需引數。
參考: rand() srand() getrandmax() mt_srand() mt_rand()
number_format
格式化數字字串。
語法: string number_format(float number, int [decimals], string [dec_point], string [thousands_sep]);
返回值: 字串
函式種類: 數學運算
內容說明: 本函式用來將浮點引數 number 格式化。若沒加引數 decimals 則返回的字串只要整數部份,加了此引數才依引數指定的小數點位數返回。引數 dec_point 表示小數點的表示方式方法,預設值是 ".",若需要轉換成其它的小數點就可以在這個引數改掉。引數 thousands_sep 為整數部份每三位的分隔符號,預設值是 ","。本函式最特別的地方就是引數數目,最少要有一個,也就是欲格式化的字串;也可以有二個或者四個引數,但不能用三個引數。值得注意的是指定小數點的位數之後的數字直接捨棄,沒有四捨五入的情形。
使用範例
1 2 3 4 5 6 7 8 |
<?php
$short_pi = "3.14159" ;
$my_pi = number_format( $short_pi , 2);
echo $my_pi . "n" ; // 3.14
$foo = 850017.9021;
$new_foo = number_format( $foo , 3, "." , " " );
echo $new_foo . "n" ; // 850 017.902
?>
|
OctDec
八進位轉十進位。
語法: string decoct(int number);
返回值: 字串
函式種類: 數學運算
內容說明: 本函式將八進位字串轉成十進位數字。由於 PHP 使用 32 位有正負號整數計算,能處理最大的八進位數字為 17777777777,也就是十進位數字的 2147483647。
參考: DecOct()
pi
圓周率。
語法: double pi(void);
返回值: 倍精確數
函式種類: 數學運算
內容說明: 本函式返回圓周率。不需輸入引數。
pow
次方。
語法: float pow(float base, float exp);
返回值: 浮點數
函式種類: 數學運算
內容說明: 本函式計算次方值。引數 base 為基底,exp 為冪數。
使用範例
1 2 3 4 |
<?php
print (pow(2,3)); // 8
print (pow(5,4)); // 625
?>
|
參考: Log10() Exp()
rand
取得隨機數值。
語法: int rand([int min], [int max]);
返回值: 整數
函式種類: 數學運算
內容說明: 本函式用來取得隨機數值。若沒有指定隨機數的最大及最小範圍,本函式會自動的從 0 到 RAND_MAX 中取一個隨機數。若有指定 min 及 max 的引數,則從指定引數中取一個數字。例如 rand(38, 49) 則會從 38 到 49 之間取一個隨機數值,UNIX 系統包含 49、Win32 系統不包含 49 ([[email protected]][email protected][/email] 10-May-1999)。值得注意的是為使隨機數的亂度最大,每次在取隨機數之前最好使用 srand() 以配置新的隨機數種子。
參考: srand() getrandmax() mt_rand() mt_srand() mt_getrandmax()
round
四捨五入。
語法: double round(double val);
返回值: 倍精確數
函式種類: 數學運算
內容說明: 本函式用來將數字小數點後四捨五入。
使用範例
1 2 3 4 5 6 7 8 |
<?php
$foo1 = round (3.4);
$foo2 = round (3.5);
$foo3 = round (3.6);
echo "round(3.4): " . $foo1 . "<br>n" ;
echo "round(3.5): " . $foo2 . "<br>n" ;
echo "round(3.6): " . $foo3 ;
?>
|
參考: Ceil() Floor()
Sin
正弦計算。
語法: float sin(float arg);
返回值: 浮點數
函式種類: 數學運算
內容說明: 本函式計算引數 arg 的正弦值 (sine)。
參考: Cos() Tan()
Sqrt
開平方根。
語法: float sqrt(float arg);
返回值: 浮點數
函式種類: 數學運算
內容說明: 本函式將引數 arg 開平方根。
srand
配置隨機數種子。
語法: void srand(int seed);
返回值: 無
函式種類: 數學運算
內容說明: 本函式傳入引數 seed 後,配置隨機數的種子。值得注意的是引數 seed 值最好也是隨機出現的數字,例如利用加入時間做為變數的來源就是不錯的方法,或者開發其它的硬體周邊介面可取得更好的隨機數。
使用範例
本例加入時間的因素,以執行時的百萬分之一秒當隨機數種子
1 2 3 4 5 |
<?php
srand((double)microtime()*1000000);
$randval = rand();
echo $randval ;
?>
|
參考: rand() getrandmax() mt_srand() mt_rand() mt_getrandmax()
Tan
正切計算。
語法: float tan(float arg);
返回值: 浮點數
函式種類: 數學運算
內容說明: 本函式計算引數 arg 的正切值 (tangent)。
參考: Sin() Cos()