C# 除以0怎么不是一个';除以零';例外?

C# 除以0怎么不是一个';除以零';例外?,c#,C#,此代码生成一个System.ArgumentOutOfRangeException,因为NumberOfInterval为无穷大。但这为什么不产生一个除以零的异常呢?计算结果为-524/0。这不应该产生一个除以零的异常吗 DateTime startDate = new DateTime(2019, 1, 1); DateTime referenceDate = new DateTime(2020, 6, 8); double numberOfIntervals = (startDate -

此代码生成一个
System.ArgumentOutOfRangeException
,因为
NumberOfInterval
为无穷大。但这为什么不产生一个
除以零的异常呢?计算结果为-524/0。这不应该产生一个
除以零的异常吗

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

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

Console.WriteLine(numberOfIntervals);

实现是按标准完成的

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


实现是按标准完成的

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


这回答了你的问题吗?(你把一个double除以一个int)分子是一个double。所以它变成了一个双精度的最大正数。它部分地回答了我的问题。这很有帮助,但是为什么不也抛出用零除的双倍数呢?有时在浮点运算中,能够表示无穷大是很有用的。。。因此,
1f/0==double.PositiveInfinity将是真的,这将是负无穷大,这肯定回答了你的问题吗?(你把一个double除以一个int)分子是一个double。所以它变成了一个双精度的最大正数。它部分地回答了我的问题。这很有帮助,但是为什么不也抛出用零除的双倍数呢?有时在浮点运算中,能够表示无穷大是很有用的。。。所以
1f/0==double.PositiveInfinity
将是真的这将是负无穷肯定我在异常处理部分看到了这一点:我想我仍然想知道为什么对待double与对待int不同。也许这可以帮助我在异常处理部分看到这一点:我想我仍然想知道为什么对待double与对待int不同也许这会有帮助