c# – Int vs Double并除以零异常

参见英文答案 > Inconsistency in divide-by-zero behavior between different value types                                    5个
当整数除以零时,我们得到编译时错误;而在double的情况下,没有编译错误,但在运行时,我们得到无穷大/ NaN作为结果.任何想法为什么int&当除以零异常时,double有不同的行为?

void Main()
{
    int number = 20;
    var result1 = number/0; // Divide by zero compile time exception

    double doubleNumber = 20;
    var result2 = doubleNumber/0.0; // no compile time error. Result is infinity or NaN
}
最佳答案
因为它是如何它是defined.而对于整数,无穷大和NaN没有特殊值,因此如果编译器能够在编译时发现问题,则编译器会抛出错误.

转载注明原文:c# – Int vs Double并除以零异常 - 代码日志