5

除以 0 给出这个特殊值:

 3/0 output:Infinity

你不能互相对抗正无穷和负无穷:

Infinity - Infinity output:NaN (Why?)

事实证明,“超越无限”仍然是无限的:

 Infinity + Infinity output:Infinity(this is accepted)


 5 * Infinity
Infinity(this is also accepted)

那么为什么infinity-infinity 评估为NaN?它应该是无穷大,不是吗?我还想知道为什么不能将对象转换为原始值?很抱歉一次发布两个问题,因为这是我可以发布的最后一个问题。看这里:

var obj = {
    valueOf: function () {
        console.log("valueOf");
        return {}; // not a primitive
    },
    toString: function () {
        console.log("toString");
        return {}; // not a primitive
    }
}

 Number(obj) //TypeError: Cannot convert object to primitive values
4

3 回答 3

9

这就是 ∞ 在数学中的工作原理。无穷大本身不是一个数字,而是一个概念。一般的想法是
∞ + x = ∞ ∀ x

∞ 显然是无限大的。如果你从另一个无限大的东西中减去一个无限大的东西,你就无法定义你还剩下什么。如果第一个无穷大更大,你会得到一个负的结果,但如果它更小,那么结果将是正的(减法的基本规则),但由于两者都是无限大的,你无法知道哪个更大(除非更多给出了信息,例如导致这些无穷大的上下文*)。因此,就计算机而言,∞ - ∞ 在数学上是未定义的,或者不是数字。

* 示例:设 x = 所有正整数的总和,y = 每个正整数加倍的总和。在这种情况下,我们可以说 y > x,即使两者都是无穷大。

于 2013-04-13T16:18:35.010 回答
0
var A = 1/0
var B = 2 * A
var c = B - A

Note that even though B = 2 * A, still A = B (2 * infinity is still infinity, so they are both infinity), so what do you expect C to be? infinity or 0?

Infinity is not really a number, mathematically speaking. Though IsNaN(1/0) = false.

于 2013-04-13T16:22:35.323 回答
0

因为它是一个不确定的形式,所以它不是无限的。NaN以最好的方式反映了这一点。

http://en.wikipedia.org/wiki/Indeterminate_form

相关问题: https ://math.stackexchange.com/questions/60766/what-is-the-result-of-infinity-minus-infinity

于 2013-04-13T16:17:53.647 回答