PHP计算功能

时间:2016-01-12 14:30:27

标签: php excel

我在Excel中进行了计算,并尝试在PHP中使用它。不幸的是,当我使用函数时,我没有得到正确的总数。

这是我在Excel中使用它的计算:

2500 / (( 0.25 / 100 ) / ( 1 - ( ( 1 + ( 0.25 / 100 )) ^ -360)))

我在PHP中计算的函数:

function calculatesum($income, $interestmonthly, $months){
   return $income / (( $interestmonthly / 100 ) / ( 1 - ( ( 1 + ( $interestmonthly / 100 ) ) ^ -$months)));
}

PHP中的函数返回:'360000000'。但这应该是'592.973,4538'。

我想知道我做错了什么。任何提示都将受到欢迎!

已经研究过'pow'功能,但仍然得到了相同的结果。

3 个答案:

答案 0 :(得分:3)

Excel使用^来计算数字的幂。 PHP为此目的使用pow($number, $exponent)

function calculatesum($income, $interestmonthly, $months){
  return $income / (( $interestmonthly / 100 ) / ( 1 - ( pow(( 1 + ( $interestmonthly / 100 ) ), -$months))));
}

echo calculatesum(2500,0.25,360);

输出:

592973.4537607

有关文档和示例,请参阅http://php.net/manual/en/function.pow.php

答案 1 :(得分:1)

使用它。 PHP不会使用^来提高功率。您可以使用

提高值的功效
  

**

例如,

  

2 ** 5将等于2 ^ 5

希望这有帮助。

function calculatesum($income, $interestmonthly, $months){
   return $income / (( $interestmonthly / 100 ) / ( 1 - ( ( 1 + ( $interestmonthly / 100 ) ) ** -$months)));
}

答案 2 :(得分:0)

PHP不会将^视为运算符,而是使用另一个函数 pow enter link description here 我认为你需要改变才能获得你想要的价值。

function calculatesum($income, $interestmonthly, $months){ 
   $n1=( $interestmonthly / 100 );
   $n2= ( 1 + ( $interestmonthly / 100 ) );
   $r1= pow($n2,-$months);
   $r2=$n1 / ( 1 - $r1);
   return $income /($n1 /$r2);
}