Skip to content

php_ref_math

PHP 提供了一整套用于执行数学运算的函数,范围从基本算术、四舍五入到三角函数和对数计算。

这些函数操作 PHP 的标准数值类型:int(整数)和 float(浮点数,也称为双精度数)。

核心数学函数和常量是内置于 PHP 中的。使用它们不需要单独安装或启用扩展。

函数描述
abs()返回一个数的绝对值(非负值)。
ceil()将一个数向上舍入到最接近的整数。
floor()将一个数向下舍入到最接近的整数。
round()将浮点数舍入到指定的小数位数(如果省略精度,则舍入到最接近的整数)。支持不同的舍入模式(例如,PHP_ROUND_HALF_UP,PHP_ROUND_HALF_DOWN)。
min()从参数列表或数组中返回最低值。
max()从参数列表或数组中返回最高值。
rand() / mt_rand()生成一个伪随机整数。通常优先使用 mt_rand()(Mersenne Twister)以获得更好的随机性和性能。
srand() / mt_srand()为随机数生成器设置种子。通常不需要,除非您需要特定的重复序列。
getrandmax() / mt_getrandmax()分别返回 rand() 或 mt_rand() 可能返回的最大值。
sqrt()返回一个数的平方根。
pow()返回底数的指定指数次幂(例如,pow(2, 8) 是 2 的 8 次幂)。
exp()计算 e(欧拉数)的指数。
log()返回一个数的自然对数(以 e 为底)。
log10()返回一个数的以 10 为底的对数。
pi()返回圆周率 Pi (π) 的近似值。
is_nan()检查一个值是否是“非数字”(通常由无效计算产生)。
is_finite() / is_infinite()检查一个值是有限的还是无限的。
intdiv()(PHP 7+) 执行整数除法,只返回商的整数部分。
fmod()返回两个数相除的浮点余数(模)。
base_convert()在任意进制(例如,二进制、八进制、十进制、十六进制)之间转换数字。
bindec(), octdec(), hexdec()将二进制、八进制或十六进制字符串转换为十进制整数。
decbin(), decoct(), dechex()将十进制整数转换为二进制、八进制或十六进制字符串。

PHP 包含标准三角函数,如 sin()、cos()、tan()、asin()、acos()、atan()、atan2(),以及它们的双曲对应函数(sinh()、cosh()、tanh() 等)。它还提供了度/弧度转换函数(deg2rad()、rad2deg())。注意,这些函数通常使用弧度。

PHP 提供了几个用于数学值的预定义常量。

常量描述
M_PIPi 的值 (≈ 3.14159)
M_E欧拉数 e 的值 (≈ 2.71828)
M_PI_2Pi 除以 2
M_PI_4Pi 除以 4
M_1_PI1 除以 Pi
M_2_PI2 除以 Pi
M_SQRTPIPi 的平方根
M_2_SQRTPI2 除以 Pi 的平方根
M_LN22 的自然对数
M_LN1010 的自然对数
M_LOG2Ee 的以 2 为底的对数
M_LOG10Ee 的以 10 为底的对数
M_SQRT22 的平方根
M_SQRT33 的平方根
M_SQRT1_21/2 的平方根
INF表示无穷大(浮点值)
NAN表示“非数字”(浮点值)
PHP_INT_MAX当前 PHP 构建支持的最大整数。
PHP_INT_MIN当前 PHP 构建支持的最小整数。
PHP_INT_SIZE整数的大小(字节)。
PHP_FLOAT_DIG可以舍入到浮点数并返回而不损失精度的十进制位数。
PHP_FLOAT_EPSILON最小的可表示正数 x,使得 x + 1.0 != 1.0。
PHP_FLOAT_MIN最小的可表示正浮点数。
PHP_FLOAT_MAX最大的可表示浮点数。
PHP_ROUND_HALF_UPround() 的舍入模式常量:舍去一半时向上舍入(远离零)。
PHP_ROUND_HALF_DOWNround() 的舍入模式常量:舍去一半时向下舍入(趋向零)。
PHP_ROUND_HALF_EVENround() 的舍入模式常量:舍去一半时舍入到最接近的偶数。
PHP_ROUND_HALF_ODDround() 的舍入模式常量:舍去一半时舍入到最接近的奇数。

有关完整和最新的列表,请始终参阅官方 PHP 文档。