I always understood this to be a feature of Intel processors. In the
old days (writing native code), floating point went to the FPU, which,
in the very old days, was a separate chip. This handled float divide
by zero and returned NaN. While the main CPU which handles integer
division threw an exception.
IIRC you can change this behavior with a setting in the registry,
although it's been about 12 years since I tried it and never on CLR,
Kevin
On Tue, Feb 26, 2008 at 9:28 AM, Per Bolmstedt
<***@ul7.info> wrote:
> On Tue, 26 Feb 2008 10:35:15 +0100, Frans Bouma <***@XS4ALL.NL> wrote:
>
> >> In a little more than a nutshell, why does the CLR only throw a divide by
> >> zero exception for integers?
> >
> > I think because, if I recall correctly, a floating point number is
> > always an approximation, so you can have a floating point value
> > which seems 0 but actually isn't.
>
> I disagree. PositiveInfinity, for example, is not an approximation. It's
> really infinity.
> http://msdn2.microsoft.com/en-us/library/system.double.positiveinfinity.aspx
>
> I found this concisely helpful:
> http://grouper.ieee.org/groups/754/faq.html#exceptions
>
> Couldn't it be seen as that decimal/integer have been simplified in the CLR
> (for programmers), whereas single/double retain their complexity (for
> mathematicians)?
>
>
>
> ===================================
> This list is hosted by DevelopMentor(R) http://www.develop.com
>
> View archives and manage your subscription(s) at http://discuss.develop.com
>
===================================
This list is hosted by DevelopMentor® http://www.develop.com
View archives and manage your subscription(s) at http://discuss.develop.com