Математическое уравнение PHP - PullRequest
2 голосов
/ 11 ноября 2011

Я пытаюсь написать математическое уравнение с помощью PHP. Уравнение, которое мне нужно написать:

(. 0054 * 260000) / (1-1.0054 ^ -360)

Это равно: 1639,958570 (на моем калькуляторе)

С сценарием, который я пишу, он у меня таков:

$dec = .0054;
$amount = 260000;
$months = 360;

$equation = ($dec * $amount) / (1 - (1 + $dec)^-$months);

print $equation;

Когда я делаю это, я получаю ответ «-3,9»

Есть идеи, что я делаю не так?

Ответы [ 5 ]

7 голосов
/ 11 ноября 2011

Попробуйте использовать функцию pow () :

$equation = ($dec * $amount) / (1 - pow(1 + $dec, $months * -1));
2 голосов
/ 11 ноября 2011

Нельзя использовать ^ для питания. То, что вы делаете сейчас, это то, что вместо этого вы XOR.

Для этого используйте pow .

1 голос
/ 11 ноября 2011

попробуй:

$dec = .0054;
$amount = 260000;
$months = 360;

$equation = ($dec * $amount) / (1 - pow(1 + $dec,-$months));

print $equation;
1 голос
/ 11 ноября 2011

Вы не можете использовать ^ в качестве степенной функции (это битовый оператор ).

Взгляните на функцию pow () .

1 голос
/ 11 ноября 2011

Да, символ каретки не является представителем экспоненциального оператора в PHP.Оператор ^ (каретка) выполняет побитовое исключающее ИЛИ (XOR) для двух целых чисел

Пример:

$equation = ($dec * $amount) / (1 - (pow(1 + $dec, -$months));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...