繁体   English   中英

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);它也将返回true

我正在使用.Net core 3.1。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM