javascript - js数学方程之谜

标签 javascript math

我是新来的:)

所以,在 javascript 中,我“只是”想求解方程中的 X: 我原来的公式是:

var X = (((((k/(cc**ci))-bk*)/(0.01*kg))-18)/((0.1+0.05*d1)*(280/(w+100)))-sd)

如果我没记错的话,它返回了一些高得离谱的数字......

好吧,我想这是一个问题......所以,我尝试了这个:

var X = (((((k*1.0/(cc*1.0*ci*1.0))-bk*1.0)/(0.01*kg*1.0))-18)/((0.1+0.05*d1*1.0)*(280/(w*1.0+100)))-sd*1.0)

现在它对于这些简单变量来说效果很好: cc=0, ci=0, bk=100, kg=100, d1=10, w=100, sd=10

但是..当解接近0时,它突然变得完全疯狂。 在本例中,如果 k=126.4,则解应为 0。但是,我得到的是“7.1054273576”。我用不同的程序计算了它(甚至是我的旧袖珍计算器,哈哈),他们都说它是 0 --> 所以我想我的方程应该是正确的。

我尝试了 k=126.5,它返回 0.119。 k=126.3,返回 -0.119 这些都是正确的。 所以逻辑上 k=126.4 应该返回 0...但事实并非如此。它仍然返回 7.1(...)。

我什至尝试用(见上文)数字替换所有变量:

var X = (((((126.4*1/(1*1*1*1))-100*1)/(0.01*100*1))-18)/((0.1+0.05*10*1)*(280/(100*1+100)))-10)

--> 这仍然返回到 7.1(...),尽管它应该是 0。 所以问题绝对不是我的变量之一。 对于这些测试,我使用输入 type="number"对象来查看结果(如果有任何相关性的话)...

我仍然看不出问题所在,这似乎完全不合逻辑,对我来说完全是个谜。请帮忙!

最佳答案

你错过了最后的部分。 X 等于:

7.105427357601002e-15
                 ^
                 Scientific Notation!

请注意末尾的 e-15。这意味着,以十进制表示,它是

0.000000000000007105427357601002

或者换句话说,就大多数用途而言,非常接近 0。它和 0 之间的差异可能是由于四舍五入造成的。

关于javascript - js数学方程之谜,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44862564/

相关文章:

javascript - 事件监听器未在循环中工作

windows - MulDiv 是否比存储已知值和在其他代码中进行数学计算效率低

javascript - angularjs可选参数的ui-router

javascript - 如何将Json数据加载到Select2中

javascript - Vuejs全局注册vuefire

android - 你能解释一下(数学计算)手势示例(Levenshtein)吗?

math - 41 位可以表示多少年的毫秒时间戳?

javascript - EmberJS 中的隐藏/显示部分

machine-learning - 使用越来越多的反馈更新 Beta 发行版的 alpha 和 beta 参数

matlab - 在 MATLAB 中从三个输入点通过 3D 空间创建半椭圆路径,然后输入 Visual Studio 并最终输入机械臂