javascript - 从 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”,我不知道我做错了什么。
解决方案
这是因为第三个 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)
推荐阅读
- list - Tcl:如何在 Tcl 8.4 中搜索嵌套列表?
- c# - 使用数组设置/获取类的字段:比反射更快的方法?
- ruby-on-rails - 为什么不能直接更新 Active Record 查找的结果?
- angular-material - 检查其他任何一个时如何禁用复选框角度7
- ios - 如何在后台全局队列中运行一堆任务
- python - 无法分配主机名:在 django 中出现 getaddrinfo 错误
- java - 迭代器不会从列表中删除特定项目
- python - 使用多项式划分两组点
- python - GROUP BY 的 Python 和 PostgreSQL 问题
- unity3d - Unity 为什么我不能在不同的对象上应用相同的纹理