Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Математическая формула (https://javascript.ru/forum/dom-window/47429-matematicheskaya-formula.html)

ArtemGavrilenko 23.05.2014 15:02

Математическая формула
 
Добрый день!

Есть формула вида
((1+$I$17/12/100)^$I$20*$I$17/12/100)/((1+$I$17/12/100)^$I$20-1)*C17

где $I$17 = 1
$I$20 = 12
C17 = значению которое вернула функция

Функция возврата значения для С17
function monthly_payment(id) {
        return parseInt(goods[id]['price'] - (goods[id]['price'] * _percentage['advance']));
    }


var stavka = {
            one_year: '0.01', //1процент
            two_year: '0.12', //12процентов
        }


Функция расчета для формулы

function monthly_payment_12(id){
        return parseInt(((1+stavka['one_year']/12/100)^12 * stavka['one_year']/12/100)/((1+stavka['one_year']/12/100)^12-1) * monthly_payment(id));
    }


На выходе получаю данные не соответствующие проверочным. Где я ошибся?

depp 23.05.2014 15:15

var stavka = {
            one_year: 0.01, //1процент
            two_year: 0.12, //12процентов
        }

первое что в глаза бросилось. кавычки убери.

nerv_ 23.05.2014 15:44

Цитата:

Сообщение от ArtemGavrilenko
^

это что? Возведение в степень? http://javascript.ru/Math-pow

ArtemGavrilenko 23.05.2014 15:47

я уже это прочитал, пишу вот так
var part1 = (1+stavka['one_year']/12/100);

        var part2 = Math.pow(part1, 12);

        var part3 = (stavka['one_year']/12/100);

        var part4 = part1 * part3;

        var part5 = (1+stavka['one_year']/12/100);

        var part6 = Math.pow(part5, 11);

        var part7 = part6 * monthly_payment(id);

        var res = part4 / part7;

        return parseInt(res);

и все равно не пойму что не так :cray:


Часовой пояс GMT +3, время: 14:22.