将 Excel 公式转换为 Javascript
Convert Excel Formula to Javascript
我在 excel 上有这个公式
=(1130000000000*F11^1.85)/(F19^1.85*(F13*(1-2/F15))^4.8655)
什么时候
F11 = q
F19 = 150 (Constant)
F13 = d
F15 = sdr
我把它转换成这个
Math.round((1130000000000*Math.pow(q,1.85))/(Math.pow(150,1.85)*Math.pow(d*(1-2/sdr)),4.8655))
但结果是错误的
什么时候
q = 120
d = 200
sdr = 17
结果应该是8.76
但我得到长数字
有什么帮助吗?谢谢
来自 YUI 博客
JavaScript 只有一个数字类型:IEEE 754 Double Precision 浮点数。拥有单一的数字类型是 JavaScript 的最佳功能之一。多种数字类型可能是复杂性、混乱和错误的根源。单一类型正在简化和稳定。 不幸的是,二进制浮点类型有一些明显的缺点。最糟糕的是它不能准确地表示小数,这是一个大问题,因为人类长期以来一直在用小数进行商业交易。切换到基于二进制的数字系统会有好处,但这不会发生。因此,0.1 + 0.2 === 0.3 是假的,这是很多混乱的根源。
http://www.yuiblog.com/blog/2009/03/10/when-you-cant-count-on-your-numbers/
完全忽略我之前的回答,尽管如果您继续使用这些大数字,您肯定会遇到问题,但您的实际问题是代码中放错了括号。如果您使用它(只需将变量名称替换为值):
Math.round((1130000000000*Math.pow(120,1.85))/(Math.pow(150,1.85)*Math.pow((200*(1-2/17)),4.8655)))
它返回 9(四舍五入的 8.76),您放错位置的括号位于1-2
标记附近。
为了将来的参考,Javascript可以理解的最大数字是+/- 9007199254740992。
引用:
一个数字在不损失精度的情况下可以达到的 JavaScript 的最高整数值是多少?
ECMA-262 - 数字类型
相关文章:
- 将这些正则表达式从javascript转换为Java
- 使用JAVASCRIPT转换货币.可以't通过我的函数设置转换后的输入文本字段的值
- 使用ScriptObjectMirror将数组结果从JavaScript转换为有用的东西
- 如何在javascript转换编码中将一个动态值从一个表单添加到另一个页面
- 使用document.cookie将客户端javascript转换为节点模块
- 将纯javascript转换为jquery
- 按钮标签,javascript 转换为链接标签
- Javascript转换数组
- 如何将此JavaScript转换为插件
- 将可迭代的 Javascript 转换为数组
- DOM元素上的Javascript转换
- 用javascript转换日期
- 将代码从JavaScript转换为PHP
- 将var javascript转换为java变量
- 如何使用javascript转换特殊字符及其实体名称(如&with&)
- 如何将这个javascript转换为jquery
- Clojure到JavaScript转换器(Leiningen)
- .Net Ticks 使用 JavaScript 转换为 ISO 8601 日期格式
- JavaScript 转换用户输入
- 将 Javascript 转换为 coffeescript