我是新来的 :)
因此,在javascript中,我"简单地"想要在等式中解决X:我的原始公式是:
var X = (((((k/(cc**ci))-bk*)/(0.01*kg))-18)/((0.1+0.05*d1)*(280/(w+100)))-sd)
Run Code Online (Sandbox Code Playgroud)
如果我没记错的话,它返回了一些可笑的高数字......
好吧,我想这是一个问题......所以,我试过这个:
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)
Run Code Online (Sandbox Code Playgroud)
现在它对这些简单变量非常有效: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)
Run Code Online (Sandbox Code Playgroud)
- >这仍然返回7.1(...),虽然它应该是0.所以问题绝对不是我的变量之一.对于这些测试,我使用输入类型="数字"对象来查看结果,如果这有任何相关性...
我仍然看不出问题,这看起来绝对不合逻辑,对我来说是一个完全的谜.请帮忙!
你最后错过了一点.X等于:
7.105427357601002e-15
^
Scientific Notation!
Run Code Online (Sandbox Code Playgroud)
注意e-15最后.这意味着,在十进制表示法中,它是
0.000000000000007105427357601002
Run Code Online (Sandbox Code Playgroud)
或者换句话说,就大多数用途而言,非常接近0.它与0之间的差异可能来自四舍五入.