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

时间:2010-11-23 23:18:14

标签: c# floating-point infinity

我们何时需要使用Infinity值,请添加实际样本(如果有)。

2 个答案:

答案 0 :(得分:7)

PostiveInfinity

  

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

NegativeInfinity

  

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

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

答案 1 :(得分:7)

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

这一原则的现实应用:

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;
}