Использование JavaScript Math.pow для Excel Formular - PullRequest
1 голос
/ 22 августа 2011

У меня возникли некоторые трудности с тем, чтобы мой JavaScript давал те же результаты, что и электронная таблица, которую мне дали.

Формула выглядит следующим образом:

= В $ 2 * (1 + В $ 3) ^ B $ 6

, где

B2 = 40000

B3 = 1%

B6 = 30

Результат округляется до 53 914.

Мой JavaScript выглядит следующим образом:

var B2 = 40000; 
var B3 =  1/100; 
var B6 = 30;

var result = Math.pow(B2 * (1 + B3),B6);

Я всегда получаю результат 1.5539639994483203e + 138

Кто-нибудь знает, как я могу заставить мой JavaScript производить тот же результат, что и в формуле Excel, или где я мог ошибиться при использовании функции Math.pow?

Ответы [ 2 ]

2 голосов
/ 22 августа 2011

Это просто ваш оператор приоритет, который не так. Попробуйте это:

 B2 * Math.pow(1 + B3, B6)

Это дает мне 53913,95661331625

Excel оценивает оператор ^ перед *, поэтому, хотя он выглядит как (A*B)^C, на самом деле A*(B^C)

0 голосов
/ 22 августа 2011
var B2 = 40000; 
var B3 =  1/100; 
var B6 = 30;

var result = B2*Math.pow(1 + B3,B6);
...