首页 > 解决方案 > 从 Excel 公式转换为 JavaScript 的问题

问题描述

我正在尝试使用 htmlform 和 JavaScript 将 Excel 工作表转换为网页。我已经把 html 搞定了,但是我的 JavaScript 数学给了我一些意想不到的答案……
我正在尝试转换这个 Excel 公式:

=100*((G5*(G10)^2)/(G7*((1+G9)^2-1)))^(1/5)

或使用实际数字而不是单元格 ID:

=100*((25*(2.63)^2)/(44.01*((1+13)^2-1)))^(1/5)

(Excel 返回 45.801 是正确的)。

到目前为止,我对 JavaScript 版本的最佳尝试是:

let var = 100*Math.pow((varG5*Math.pow(varG10,2))/(varG7*(Math.pow((1+varG9),2-1))),1/5);

或用数字代替变量:

let var = 100*Math.pow((25*Math.pow(2.63,2))/(44.01*(Math.pow((1+13),2-1))),1/5);

两个 JavaScript 版本(带有变量或直数)都返回“77.559”,我不知道我做错了什么。

标签: javascriptexcel

解决方案


这是因为第三个 Math.pow 执行 14^1 而不是 (14^2) - 1

这是解决方案:

100 * Math.pow(((25* Math.pow(2.63, 2)) / (44.01 * (Math.pow((1+13),2)-1))), 1/5)

或者

100 * ((25*(2.63)**2) / (44.01*((1+13)**2-1))) ** (1/5)

推荐阅读