2016-10-05 3 views
1

Я пытаюсь создать версию JavaScript этого уравнения, что я получил, работающий в Excel: версияMath.pow() выходит неправильно

Excel:

10000*(1+0.06)^30+6000*(((1+0.06)^30-1)/0.06) 

Это исчисляться 531784.029

версия

JavaScript:

console.log(10000*(1+0.06)^30+6000*(((1+0.06)^30-1)/0.06)); 

Возвращает: 2789622

Или, если я пытаюсь использовать Math.pow():

console.log(10000*(Math.pow(1+.06),30)+6000*(Math.pow((1+.06),30-1)/.06)); 

Возвраты: 841838.7898974773

Я полностью озадачен примерно через 6 часов. Как мне воссоздать этот калькулятор excel и получить тот же номер?

+0

Есть ли причина того, что вы не сокращая 30-1 и 1 + 0,06? –

+0

'(1 + 0.06)^30' Вы уверены, что это правильно? '^' делает XOR в JavaScript, а не как, например, в Excel – vlaz

+0

Кроме того, во второй попытке '(Math.pow (1 + .06), 30)' скобки ошибочны. Что бы это сделало, это _evaluate_ 'Math.pow (1 + .06)', тогда отбросьте его и верните '30' из-за запятой - вы, вероятно, хотите' Math.pow (1 + .06,30) ' – vlaz

ответ

3

За такое же поведение, как в Excel вы просто иметь неправильный порядок операторов и неправильных параметров в Math.pow функции в JS, это должно быть так:

console.log(10000*(Math.pow(1+.06,30))+6000*((Math.pow(1+.06,30)-1)/0.06));

^ оператор в javascript не то же самое, что и в excel, в js это означает поразрядную операцию xor, в то время как в excel это означает то же самое, что и Math.pow.

Функция Math.pow в javascript принимает два параметра, поэтому, например, для выполнения той же операции, что и в excel 1.06^30, вы бы сделали Math.pow(1.06,30) в javascript.

, кстати, может быть, это как раз то, что вы положили для примера, но вам не нужно, чтобы добавить 1+.06 вы могли бы просто написать 1.06:

console.log(10000*(Math.pow(1.06,30))+6000*((Math.pow(1.06,30)-1)/0.06));

+1

Я как раз собирался нажать «Пост», сказав более или менее то же самое, но вы были всего на 2 секунды быстрее меня :) – vlaz

+0

@vlaz Спасибо за код кода js ... Мне было интересно, как это сделать –

+1

Это довольно смущающе, на самом деле, но мне потребовалось, как _a month_, чтобы понять, что есть кнопка в редакторе, когда вы публикуете. Это маленькая страница с символом '<>', который в значительной степени находится в середине кнопок. – vlaz

Смежные вопросы