代码之家  ›  专栏  ›  技术社区  ›  Homam

什么时候需要使用float.PositiveInfinity和float.NegativeInfinity?

  •  9
  • Homam  · 技术社区  · 14 年前

    我们何时需要使用无穷大值,请添加一个真实世界的样本(如果有的话)。

    2 回复  |  直到 14 年前
        1
  •  7
  •   Vlad    14 年前

    例如,负无穷大是空列表的自然最大值。有了这个,你就有了: max(l1 + l2) = max(max(l1), max(l2)) ,其中 l1 l2 是任意列表,可能是空的。

    这一原则的实际应用:

    float Max(IEnumerable<float> list)
    {
        // invariant: max contains maximum over the part of the list
        // considered so far
        float max = float.NegativeInfinity;
        foreach (float v in list)
            if (v > max)
                max = v;
        return max;
    }
    
        2
  •  7
  •   ChrisF    14 年前

    PostiveInfinity

    当操作结果大于MaxValue时,返回此常量。

    NegativeInfinity

    当操作的结果小于MinValue时,将返回此常量。

    因此,您可以使用这些常量来验证您的值是否超出其类型的范围。