> > 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. Gilles --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@commons.apache.org For additional commands, e-mail: dev-h...@commons.apache.org