簡體   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