私はここに新たなんだ:)JS数学の方程式の謎
ので、ジャバスクリプトでは、私は「単に」式の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)
:
[OK]を...それはいくつかの途方もなく高い数値を返し、正しくリコール、私はそう、私はこれを試してみました...それは一つの問題だったと思います3210
これらの単純な変数では、 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)
- >それはそう0 問題でなければなりませんが、これはまだ、7.1(...)に戻ります私の変数の一つではありません。 これらのテストでは、入力タイプ= "数値"オブジェクトを使用して結果を確認しましたが、関連性がある場合は結果を確認しています...
これはまだわかりませんが、これは完全に非合理的です私には謎がある。 Plsヘルプ!
最後に「e-10」や何かがありませんか? '7.1054273576e-10'のようなもの? – Carcigenicate
基本的なデータ型は精密計算では正確ではないので、他のコメントには「7.1054 ....」のように見えるかもしれませんが、実際には実際には本当に0に近いものになります。方程式の任意の一点でわずかな丸め問題...私は1行に1つの操作に分割することをお勧めしますので、値が各ステップで何であるかを正確に見ることができます – Chris