#javascript #excel #math #jquery-calculation
#javascript #excel #математика #jquery-вычисление
Вопрос:
Я пытаюсь создать версию этого уравнения на JavaScript, которую я получил, работая в Excel:
Версия 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 и получить то же число?
Комментарии:
1. Есть ли причина, по которой вы не сокращаете 30-1 и 1 0.06?
2.
(1 0.06)^30
вы уверены, что это правильно?^
выполняет XOR в JavaScript, а не power, как в Excel3.Кроме того, во второй попытке
(Math.pow(1 .06),30)
скобки неверны. Что бы это сделало, так это оценитьMath.pow(1 .06)
, затем отбросить его и вернуть30
из-за запятой — вы, вероятно, хотитеMath.pow(1 .06,30)
4. Я использую (1 .06), потому что, как только я это выясню, «.06» фактически будет переменной, поступающей из входных данных. Это процентная ставка.
Ответ №1:
Для того же поведения, что и в 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. Я как раз собирался нажать Post, говоря более или менее то же самое, но вы были примерно на 2 секунды быстрее меня 🙂
2. @vlaz Спасибо за фрагмент кода js… Мне было интересно, как это сделать
3. На самом деле это довольно неловко, но мне потребовался месяц , чтобы понять, что в редакторе есть кнопка, когда вы публикуете. Это маленькая страница с
<>
иконкой в ней, которая находится в значительной степени в середине кнопок.4. Кроме того, на случай, если кому-то еще это понадобится, это уравнение для сложных процентов в течение 30 лет под 6% годовых с добавлением 6000 долларов в КОНЦЕ каждого года.