私は、(IEの下でのみ)ユーザーの選択に応じてInfinityを表示する一連のJavascript計算を行っています。数値が無限に評価されるかどうかを確認するにはどうすればよいですか?
Infinity
という単語はどのように表示されますか?たとえば、0.0
と表示されます。
私は、(IEの下でのみ)ユーザーの選択に応じてInfinityを表示する一連のJavascript計算を行っています。数値が無限に評価されるかどうかを確認するにはどうすればよいですか?
Infinity
という単語はどのように表示されますか?たとえば、0.0
と表示されます。
if (result == Number.POSITIVE_INFINITY || result == Number.NEGATIVE_INFINITY)
{
// ...
}
あなたはおそらく、あなたがNaN
を治療する方法に応じて、代わりにisFinite
機能を使用することができます。 isFinite
は、POSITIVE_INFINITY
,NEGATIVE_INFINITY
またはNaN
の場合はfalse
を返します。
if (isFinite(result))
{
// ...
}
シンプルn === n+1
またはn === n/0
作品:
function isInfinite(n) {
return n === n/0;
}
ネイティブisFinite()
が数字への入力を強制されることに注意してください。 isFinite([])
およびisFinite(null)
は、両方とも、例えば、true
である。
実際には、n === n + 1は51ビットより大きい数値に対しては機能します。 ES6
で
1e16 + 1 === 1e16; // true
1e16 === Infinity; // false
これはryanveの答えに対するコメントです。 – Gary
、Number.isFinite()
メソッドは、渡された値が有限数であるか否かを判断します。
Number.isFinite(Infinity); // false
Number.isFinite(NaN); // false
Number.isFinite(-Infinity); // false
Number.isFinite(0); // true
Number.isFinite(2e64); // true
[アクセス可能](https://www.w3schools.com/jsref/jsref_isfinite.asp)from ECMAScript 1 – MohaMad
パーフェクト - ありがとう!ホーマー。 –
' - ?Infinity'や' - ?1/0'の代わりに 'Number。(POSITIVE | NEGATIVE)_INFINITY'を使う理由は? –
@Eli:グローバルな 'Infinity'プロパティは、読み込み専用ではありません。つまり、再定義することができます。たとえば、' var x = 42;無限大= 42; alert(x === Infinity); '*" true "を表示します。 (確かにそれはあいまいなケースであり、 'Infinity'や' NaN'などを再定義しようとする人は、奇妙なことが起こるはずです)。 – LukeH