我如何检查一个数字是否无穷大?
我有一系列的JavaScript计算(只在IE下)显示Infinity取决于用户的select。
如何阻止Infinity
字出现,例如,显示0.0
而不是?
if (result == Number.POSITIVE_INFINITY || result == Number.NEGATIVE_INFINITY) { // ... }
你可以使用isFinite
函数,取决于你想如何处理NaN
。 如果您的编号是POSITIVE_INFINITY
, NEGATIVE_INFINITY
或NaN
,则isFinite
返回false
。
if (isFinite(result)) { // ... }
一个简单的n === n+1
或n === n/0
作品:
function isInfinite(n) { return n === n/0; }
请注意,原生isFinite()
input数字。 isFinite([])
和isFinite(null)
都是true
。
在ES6
, Number.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