C# 是否会为浮点数抛出 OverflowException?

Does C# throw OverflowException for floating point numbers?

C# 编译器是否会为浮点数字类型抛出 OverflowException?

我试过这个来弄明白:

try
{
    checked
    {
        double d = Convert.ToDouble(Math.Pow(double.MaxValue, double.MaxValue));
        Console.WriteLine(d);
    }
}
catch (OverflowException)
{
    throw;
}

而我在控制台中看到的 window 是一个 ∞。

调试时∞比异常更有用吗?

不,C# 没有浮点运算的异常。

浮点型有3个特殊值:正无穷大、负无穷大和“不是数字”。

如果计算结果大于可表示的值,则计算溢出而不会抛出异常,结果为正无穷大。 是它在字符串中的表示方式。

也不例外,它向您展示了正确的值,即 INFINITY ().

您也可以通过 bool isInfinity = double.IsInfinity(d);

检查

bool isInfinity = double.IsInfinity(1.0/0);

returntrue

我正在使用 .Net 核心 3.1。