首页 > 解决方案 > 如何除以 0 不是“除以零”异常?

问题描述

此代码产生一个System.ArgumentOutOfRangeException因为numberOfIntervals是无穷大。但是为什么这不会产生divide by zero异常呢?计算结果为 -524 / 0。这不应该产生divide by zero异常吗?

DateTime startDate = new DateTime(2019, 1, 1);
DateTime referenceDate = new DateTime(2020, 6, 8);

double numberOfIntervals = (startDate - referenceDate).TotalDays / 0;

Console.WriteLine(numberOfIntervals);

标签: c#

解决方案


该实现由IEEE 754标准完成。

除以零:对有限操作数的运算给出精确的无限结果,例如 1/0 或 log(0)。默认情况下,返回±无穷大。


推荐阅读