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