【发布时间】:2012-04-06 18:49:36
【问题描述】:
当整数除以零时会出现编译时错误,而在 double 的情况下没有编译错误,但在运行时我们会得到 infinity/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
}
【问题讨论】:
-
因为这就是两个数字系统的数学定义
-
仅仅因为 Infinity/-Infinity/NaN 没有 int 等价物。浮点数学的完成方式与整数数学非常不同。
标签: c# .net divide-by-zero