另外,PHP的数学常量有:
常量名 常量名 常量值
M_E e 2.7182818284590452354
M_EULER Euler 常量 0.57721566490153286061
M_LNPI log_e(pi) 1.14472988584940017414
M_LN2 log_e 2 0.69314718055994530942
M_LN10 log_e 10 2.30258509299404568402
M_LOG2E log_2 e 1.4426950408889634074
M_LOG10E log_10 e 0.43429448190325182765
M_PI Pi 3.14159265358979323846
M_PI_2 pi/2 1.57079632679489661923
M_PI_4 pi/4 0.78539816339744830962
M_1_PI 1/pi 0.31830988618379067154
M_2_PI 2/pi 0.63661977236758134308
M_SQRTPI sqrt(pi) 1.77245385090551602729
M_2_SQRTPI 2/sqrt(pi) 1.12837916709551257390
M_SQRT1_2 1/sqrt(2) 0.70710678118654752440
M_SQRT2 sqrt(2) 1.41421356237309504880
M_SQRT3 sqrt(3) 1.73205080756887729352
下面总结一下每个数学函数的意义。
1. abs()
abs()函数返回一个数的绝对值。如:abs(-3);
2. acos()
acos() 函数返回一个数的反余弦。
语法格式: acos(x) x介于-1和1之间。
3. acosh()
acosh() 函数返回一个数的反双曲余弦。
语法格式: acosh(x)
返回参数x的反双曲余弦。即,其双曲余弦为 x 的那个值。
4. asin()
asin() 函数返回不同数值的反正弦,返回的结果是介于-PI/2 与PI/2 之间的弧度值。
语法格式:asin(x)
参数:x 必需。范围在-1 到1之间。
5. asinh()
asinh() 函数返回一个数的反双曲正弦。
语法格式:asinh(x)
返回参数x的反双曲正弦值,即,其双曲正弦为 x 的那个值。
6. atan()
atan() 函数返回一个数值的反正切,返回值介于-PI/2 与PI/2 之间。
7. atan2()
atan2() 函数返回两个参数的反正切,返回值为弧度,其值在 -PI 和 PI 之间(包括-PI 和PI)。
语法格式:atan2(x,y)
atan2() 函数计算两个变量x和y 反正切值。和计算y/x的反正切相似,不同的是两个参数的符号是用来确定结果的象限之外。
8. atanh()
atanh() 函数返回一个角度的反双曲正切。
语法格式:atanh(x)
atanh() 函数返回 x 的反双曲正切值,即,其双曲正切为 x 的那个值。
9. base_convert()
base_convert() 函数在任意进制之间转换数字。
语法格式:base_convert(number,frombase,tobase)
参数:
number 必需。原始值。
frombase 必需。数字原来的进制。
tobase 必需。要转换的进制。
返回一个字符串,包含 number 以 tobase 进制的表示。number 本身的进制由 frombase 指定。frombase 和 tobase 都只能在2 和36 之间(包括2 和36)。高于十进制的数字用字母a-z表示,例如a表示 10,b表示11以及z表示35。
如base_convert(31,10,16)表示将数字31从10进制转换为16进制。
10. bindec()
bindec() 函数把二进制转换为十进制。如bindec("11000110011")。
11. ceil()
ceil() 函数向上舍入为最接近的整数。
语法格式:ceil(x)
返回不小于x的下一个整数,x如果有小数部分则进一位。ceil() 返回的类型仍然是float,因为float 值的范围通常比 integer 要大。
如ceil(5)返回5;ceil(5.1)返回6;ceil(-5)返回-5; ceil(-5.2)返回-5。
12. cos()
cos() 函数返回一个数的余弦。
13. cosh()
cosh() 函数返回一个数的双曲余弦。
语法格式:cosh(x)
返回 x 的双曲余弦值,定义为 (exp(arg) + exp(-arg))/2。
14. decbin()
decbin() 函数把十进制转换为二进制。
语法格式:decbin(dec_number)
返回一个字符串,包含有给定十进制数dec_number参数的二进制表示。所能转换的最大数值为十进制的 4294967295,其结果为 32 个 1 的字符串。
如:echo decbin("1587"); //输出11000110011
15. dechex()
dechex() 函数把十进制转换为十六进制。
语法格式:dechex(dec_number)
返回一个字符串,包含有给定dec_number参数的十六进制表示。所能转换的最大数值为十进制的 4294967295,其结果为 "ffffffff"。
如:echo dechex("1587"); //输出633
16. decoct()
decoct() 函数把十进制转换为八进制。
语法格式:decoct(dec_number)
返回一个字符串,包含有给定 dec_number 参数的八进制表示。所能转换的最大数值为十进制的 4294967295,其结果为 "37777777777"。
如:echo decoct("1587"); //输出3063
17. deg2rad()
deg2rad() 函数将角度转换为弧度。
18. exp()
exp() 函数计算e的指数。
语法格式:exp(x)
19. expm1()
expm1() 函数返回exp(x) - 1,甚至当 number 的值接近零也能计算出准确结果。
当两个数值趋近于相等的时候,'exp (x) - 1' 就会变得不太准确。本函数未在 Windows 平台下实现。本函数是实验性的。本函数的行为,包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。
20. floor()
floor() 函数向下舍入为最接近的整数。
语法格式:floor(x)
返回不大于x的下一个整数,将x的小数部分舍去取整。floor()返回的类型仍然是float,因为float值的范围通常比 integer 要大。
如:floor(5)输出5;floor(5.1)输出5;floor(0.5)输出0;floor(-6.1)输出-7。
21. fmod()
fmod() 函数返回除法的浮点数余数。
语法格式:fmod(x,y)
返回被除数)x)除以除数)y)所得的浮点数余数。余数(r)的定义是:x = i * y + r,其中i是整数。如果y是非零值,则r和x的符号相同并且其数量值小于y 。
如:echo fmod(5,2); //输出1
22. getrandmax()
getrandmax()显示随机数最大的可能值。
23. hexdec()
hexdec() 函数把十六进制转换为十进制。
语法格式:hexdec(hex_string)
返回与 hex_string 参数所表示的十六进制数等值的的十进制数。hexdec() 将一个十六进制字符串转换为十进制数。所能转换的最大数值为 7fffffff,即十进制的 2147483647。PHP 4.1.0 开始,该函数可以处理大数字,这种情况下,它会返回 float 类型。hexdec() 将遇到的所有非十六进制字符替换成 0。这样,所有左边的零都被忽略,但右边的零会计入值中。
24. hypot()
hypot() 函数计算一直角三角形的斜边长度。
语法格式:hypot(x,y)
参数: x,y为直角三角形的两直角边的长度。
hypot() 函数将会跟据直角三角形的两直解边长度x和y计算其斜边的长度。或者是从标点(x , y) 到原点的距离。该函数的算法等同于sqrt(x*x + y*y)。
25. is_finite()
is_finite() 函数判断是否为有限值。
26. is_infinite()
is_infinite() 判断是否为无限值。
如果参数x为无穷大(正的或负的),例如log(0)的结果或者任何超出本平台的浮点数范围的值,则返回 true。
27. is_nan()
is_nan() 判断是否为合法数值。如果参数x为“非数值”,例如acos(1.01) 的结果,则返回 true;echo acos(1.20);的结果返回1。
28. lcg_value()
lcg_value() 返回范围为 (0, 1) 的一个伪随机数。本函数组合了周期为 2^31 - 85 和 2^31 - 249 的两个同余发生器。本函数的周期等于这两个素数的乘积。
测试:
<?php
echo lcg_value();
?>
输出:
0.508212039328
29. log()
log() 返回自然对数。
语法格式:log(x,base)
如果指定了可选的参数base,log() 返回 logbasex ,否则 log() 返回参数x的自然对数。
30. log10()
log10() 返回以10为底参数x的对数。如果参数 x 是负数,则返回 -1.#IND。
31. log1p()
log1p(x) 以返回log(1 + x),甚至当x的值接近零也能计算出准确结果。本函数是实验性的。本函数的行为,包括函数名称以及其它任何关于本函数的文档可能会在没有通知的情况下随 PHP 以后的发布而改变。使用本函数风险自担。
32. max()
max(x, y) 返回参数中数值最大的值。
如果仅有一个参数且为数组,max() 返回该数组中最大的值。如果第一个参数是整数、字符串或浮点数,则至少需要两个参数而 max() 会返回这些值中最大的一个。可以比较无限多个值。
PHP 会将非数值的字符串当成 0,但如果这个正是最大的数值则仍然会返回一个字符串。如果多个参数都求值为 0 且是最大值,max() 会返回其中数值的 0,如果参数中没有数值的 0,则返回按字母表顺序最大的字符串。
33. min()
min(x, y) 返回参数中数值最小的。
如果仅有一个参数且为数组,min() 返回该数组中最小的值。如果第一个参数是整数、字符串或浮点数,则至少需要两个参数而 min() 会返回这些值中最小的一个。可以比较无限多个值。
PHP 会将非数值的 string 当成 0,但如果这个正是最小的数值则仍然会返回一个字符串。如果多个参数都求值为 0 且是最小值,min() 会返回按字母表顺序最小的字符串,如果其中没有字符串的话,则返回数值的 0。
34. mt_getrandmax()
mt_getrandmax() 显示随机数的最大可能值,返回调用mt_rand() 所能返回的最大的随机数。
35. mt_rand()
mt_rand(min,max)使用 Mersenne Twister 算法返回随机整数。
如果没有提供可选参数min和max,mt_rand() 返回0到RAND_MAX之间的伪随机数。例如想要5到15(包括5和15)之间的随机数,用mt_rand(5, 15)。
很多老的libc的随机数发生器具有一些不确定和未知的特性而且很慢。PHP 的rand() 函数默认使用 libc 随机数发生器。mt_rand() 函数是非正式用来替换它的。该函数用了Mersenne Twister中已知的特性作为随机数发生器,它可以产生随机数值的平均速度比libc提供的rand()快四倍。
36. mt_srand()
mt_srand(seed)播种Mersenne Twister随机数生成器。seed 参数为可选项,当该项为空时,会被设为随时数。
37. octdec()
octdec(octal_string)函数把八进制转换为十进制。
返回octal_string 参数所表示的八进制数的十进制等值。可转换的最大的数值为17777777777 或十进制的 147483647。从 PHP 4.1.0 开始,该函数可以处理大数字,这种情况下,它会返回float类型。
38. pi()
pi()返回圆周率的近似值。返回值的 float 精度是由 php.ini 中的 precision 指令确定。默认值是 14。您也可以使用 M_PI 常量,该常量产生与 pi() 完全相同的结果。
39. pow()
pow(x,y)函数返回x的y次方。
40. rad2deg()
rad2deg(radian_number)函数把弧度数转换为角度数。
41. rand()
rand(min,max)函数返回随机整数。如果没有提供可选参数 min 和 max,rand() 返回 0 到 RAND_MAX 之间的伪随机整数。在某些平台下(例如 Windows)RAND_MAX 只有32768。如果需要的范围大于32768,那么指定min和max参数就可以生成大于RAND_MAX 的数了,或者考虑用mt_rand() 来替代它。
42. round()
round(x,prec)函数对浮点数进行四舍五入。
返回将 x 根据指定精度 prec (十进制小数点后数字的数目)进行四舍五入的结果。prec 也可以是负数或零(默认值)。PHP 默认不能正确处理类似 "1,453.20" 的字符串。
43. sin()
sin(x)返回参数 x 的正弦值。参数 x 的单位为弧度。
44. sinh()
sinh(x)返回x的双曲正弦值,定义为(exp(arg) - exp(-arg))/2。
45. sqrt()
sqrt(x)返回 x 的平方根。如果参数 x 是负数,则 sqrt() 函数返回 -1.#IND。
46. srand()
srand(seed)函数播下随机数发生器种子。seed 参数为可选项,当该项为空时,会被设为随时数。
47. tan()
tan(x)返回参数x的正切值。参数x的单位为弧度。
48. tanh()
tanh(x)返回x的双曲正切值,定义为 sinh(arg)/cosh(arg)。
转载自:http://hi.baidu.com/zhu_li_liang/item/017746c7845f6dcc994aa064