我如何检查一个数字是否无穷大?

我有一系列的JavaScript计算(只在IE下)显示Infinity取决于用户的select。

如何阻止Infinity字出现,例如,显示0.0而不是?

 if (result == Number.POSITIVE_INFINITY || result == Number.NEGATIVE_INFINITY) { // ... } 

你可以使用isFinite函数,取决于你想如何处理NaN 。 如果您的编号是POSITIVE_INFINITYNEGATIVE_INFINITYNaN ,则isFinite返回false

 if (isFinite(result)) { // ... } 

一个简单的n === n+1n === n/0作品:

 function isInfinite(n) { return n === n/0; } 

请注意,原生isFinite()input数字。 isFinite([])isFinite(null)都是true

ES6Number.isFinite()方法确定传递的值是否是有限数字。

 Number.isFinite(Infinity); // false Number.isFinite(NaN); // false Number.isFinite(-Infinity); // false Number.isFinite(0); // true Number.isFinite(2e64); // true 

实际上n === n + 1将适用于大于51位的数字,例如

 1e16 + 1 === 1e16; // true 1e16 === Infinity; // false