2016-04-25 13 views
-2

指数値の算術演算(+、 - )に制限値(最小値)はありますか?私は指数値で算術演算を実行する必要がありますが、指数値を加算すると演算は実行されません。次の例を考えてみましょう。指数値の算術演算

var a=1.797693134862314e+308, 
     q =5e+291; 
    q=a+q; 
    if(a!= q) 
    alert("Value has changed"); 

この場合、警告値は大きいので操作を実行するかどうかを確認するために警告ボックスが使用されています。上記の値で加算演算を行わず、 "q"変数の値を "5e + 292"に変更すると演算が実行されます。 (+、 - )の指数値に対する操作算術のためにそこに任意の最小値である

Sample working

Sample not working

私が知っている必要があります:

はここでフィドルのリンクです。この問題を解決するために私を助けてください。

ありがとう、

ダーラニ。

+1

あなたはJavaまたはJavaScriptに興味がありますか?彼らは別の言語です。 JQueryがこれと何をしなければならないのかは明らかではありません。より具体的であれば、簡単に助けてくれるでしょう。 (私は 'javascript'タグがほしいと思う) –

+0

@Jon Skeet、不便を招いて申し訳ありません、私はJavascriptだけが必要です。 –

答えて

1

倍精度浮動小数点数は、ある程度の精度でしか数値を表現できません。彼らは唯一の17に有意な数字で3によって異なる

1.7976931348623137E308 

すなわちある

double nextAfter = Math.nextAfter(1.797693134862314e+308, 1.0); 

:Javaでは、1.797693134862314e+308後の次数の表現は、により求めることができます。

つまり、大きいオペランドの第18番目の有効数字の(308-291+1)=にのみ影響を与える番号を追加しようとすると、doubleは単にその違いを表すことができないため、同じように見えます。

あなたの質問は(現在)Javascriptについてですが、Javascriptの浮動小数点数は、Java doubleと同様にIEEE754 64ビットの浮動小数点数です。したがって、表現できる精度には違いはありません。

+0

質問はjavascriptのみを含むように編集されています。 –

+0

@AmreshVenugopalは、JSの浮動小数点数とJavaの倍数で表現できるものに違いがないことを指摘するように編集しました。 –

+0

もし私が示唆しているのであれば、この質問を答えとして言い換えることができますか?質問では、質問はSO基準に反対して質問されますが、実際には有効な質問ですか? –

関連する問題