commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Gilles Sadowski <>
Subject Re: [Math] Factorial
Date Tue, 02 Nov 2010 17:16:03 GMT
> > In "MathUtils", the documentation of method "factorialDouble" says that it
> > will return INFINITY when the result is larger than MAX_VALUE. It also says
> > that this will happen when n > 170.  So, I think that it should be more
> > appropriate to throw an "ArithmeticException" (as is done in the method
> > "factorial" when n > 20).
> > 
> Interesting question.  The rationale for the current setup is that there is no infinity
for Integers (nor NaN) so exception is the only option; whereas  infinity is an option for
doubles and while we can argue about the absence of overflow exceptions in Java, returning
Infinity on double overflow is consistent with the Java language spec (4.2.3).

171! is not equal to Infinity, so the returned value is wrong. That's why I
suggest to signal the problem by throwing the exception.


To unsubscribe, e-mail:
For additional commands, e-mail:

View raw message