exp(1000) is also not equal to infinity, but that is what the JVM returns. On Tue, Nov 2, 2010 at 10:16 AM, Gilles Sadowski < gil...@harfang.homelinux.org> wrote:
> > > 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 > >