[英]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.