Citation:
12.1.3 Handling of floating-point data types
[...]
The standard defines special values, NaN, (not a number), +infinity, and –infinity. These values are returned on overflow conditions. A general principle is that operations that have a value in the limit return an appropriate infinity while those that have no limiting value return NaN (see the standard for details).
[Note: The following examples show the most commonly encountered cases.]
X rem 0 = NaN
0 * +infinity = 0 * -infinity = NaN
(X / 0) = +infinity, if X > 0
NaN, if X = 0
infinity, if X < 0
NaN op X = X op NaN = NaN for all operations
(+infinity) + (+infinity) = (+infinity)
X / (+infinity) = 0
X mod (-infinity) = -X
(+infinity) - (+infinity) = NaN
[...]
3.31 Div
Integral operations throw DivideByZeroException if value2 is zero.
Floating-point operations never throw an exception (they produce NaNs or infinities instead).
Ca n'explique pas le pourquoi ca a été normé comme ca, mais explique au moins le comportement. =)