如何在 PHP 中正确计算指数值

How to calculate exponential values properly in PHP

提问人:Real Noob 提问时间:8/21/2022 最后编辑:Real Noob 更新时间:8/29/2022 访问量:126

问:

下面是一些示例代码:

$principal = 30000;
$amount = 40000;
$time = 8;

$rate = $time*(pow($amount/$principal, 1/$time) - 1);

echo ($rate*100)."\n";

上面代码的输出是:29.29,太高了。实际值应约为 3.6615。

我已经多次检查了公式。公式中没有错误。那么,为什么我得到的答案值如此不准确呢?

谢谢。

更新:试试这个计算器:https://keisan.casio.com/exec/system/1232693402

使用我上面使用的值,您将得到正确的预期答案。

公式为:

enter image description here

就我而言,A = 40000 和 P = 30000。此外,n = 1 和 t = 8。我计算错误了什么?

PHP 数学 精度

评论

0赞 President James K. Polk 8/21/2022
当我计算它时,我得到 29.29。也许你可以分解成你期望的计算方式的小步骤。请注意,如果你的计算是相反的,你会得到 3.6615$rate = pow($amount/$principal, 1/$time) - 1;
0赞 Thomas Jager 8/21/2022
你得到的答案是正确的,给定代码中显示的数学。.(我用来表示幂,而不是排他或。8 * ((40000 / 30000) ^ (1 / 8) - 1) = 0.2929...^
0赞 Real Noob 8/21/2022
没有一个在线计算器显示 0.2929,因为该利率实际上是不正确的。我不知道这是怎么回事。:)
0赞 Thomas Jager 8/21/2022
您显示的代码与您添加的链接中的数学运算不匹配。
1赞 Thomas Jager 8/21/2022
@RealNoob 你似乎正在结合和进入.你不应该在前面乘以,那应该只是 ,作为 .nn*k$time81k

答:

0赞 Rohit Gupta 8/29/2022 #1

你对 n 和 t 感到困惑。

正确的公式是

$rate = (pow($amount/$principal, 1/$time) - 1)

t 是时间,你假设 n 是时间。