许多符号使用 "^" 作为幂运算符,但在 PHP(和其他基于 C 的语言)中,它实际上是 XOR 运算符。您需要使用此 'pow' 函数,没有幂运算符。
例如,3^2 表示“3 XOR 2”,而不是“3 的平方”。
在使用 "^" 对“最近点”算法进行毕达哥拉斯定理计算时,特别容易混淆,因为您会得到看起来大致正确但存在误差的结果。
(PHP 4, PHP 5, PHP 7, PHP 8)
pow — 指数表达式
num
要使用的底数
exponent
指数
num
的 exponent
次方。如果两个参数都是非负整数,并且结果可以表示为整数,则结果将以 整数 类型返回,否则将以 浮点数 类型返回。
PHP 扩展可能覆盖此操作的行为,并使其返回一个对象。
示例 #1 pow() 的一些示例
<?php
var_dump(pow(2, 8)); // int(256)
echo pow(-1, 20), PHP_EOL; // 1
echo pow(0, 0), PHP_EOL; // 1
echo pow(10, -1), PHP_EOL; // 0.1
var_dump(pow(new GMP("3"), new GMP("2"))); // object(GMP)
echo pow(-1, 5.5); // NAN
?>
注意:
此函数将所有输入转换为数字,即使是非标量值,也可能导致 *奇怪* 的结果。
许多符号使用 "^" 作为幂运算符,但在 PHP(和其他基于 C 的语言)中,它实际上是 XOR 运算符。您需要使用此 'pow' 函数,没有幂运算符。
例如,3^2 表示“3 XOR 2”,而不是“3 的平方”。
在使用 "^" 对“最近点”算法进行毕达哥拉斯定理计算时,特别容易混淆,因为您会得到看起来大致正确但存在误差的结果。
从 PHP 5.6.0alpha2 开始,现在有了幂运算符。如果这在最终版本中保留,这里可能值得注意一下。
<?php
// 从 PHP 5.6.0 开始,这两个将是等效的
$x = $y ** 2;
$x = pow($y, 2);
?>
有趣的事情
number_format(pow(2, 1023));
给出一个长数字
但 number_format(pow(2, 1024));
给出 inf