2013-09-27 8 views

答えて

14

、私がしようとすると、この:

var max = Number.MAX_VALUE; 
var x = max + 10; 

var min = Number.MIN_VALUE; 
var y = min/10; 

私はxmaxは、Chromeで(同じ値を持っていることがわかり、IEとFirefox)ので、オーバーフローは単に最大値に固定されているようです。そして、y0に固定されるので、アンダーフローはゼロになるようです。

デモ:http://jsfiddle.net/jfriend00/hH3pT/

+0

私は-Number.MAX_VALUEを試しましたが、それらも同じです。だから最小と最大に戻ることはありません.... – JVerstry

+0

あまりにもアンダーフローの情報を追加しました。 – jfriend00

+4

しかし、 'Number.MAX_VALUE * 2'は' Infinity'になります。彼らが言っているように "行く姿"。 –

3

最大値と最小値がthisを試してみてください+/- 9007199254740992

です:

alert([Number.MAX_VALUE, Number.MIN_VALUE]); 

hereから: -

注その大きさがあり、すべての正と負の整数こといいえ 2より大きいはrepです(実際には、 の整数0には+0と-0の2つの表現があります)。

テストこの: - 簡単なテストで

var x = 9007199254740992; 
var y = -x; 
x == x + 1; // true ! 
y == y - 1; // also true ! 
+0

[OK]を、しかし、どのようにJSハンドルのオーバーフローとアンダーフローしますか? – JVerstry

+2

私はこれが実際にOPの質問に答えるとは思わない。 – jfriend00

+0

@ jfriend00: - 私の答えは、役立つリンクで更新されました。明らかに私が完全に欠けている場合は、私を修正してください! :) –

関連する問題