NumberFormatException: Infini ou NaN

J'ai une méthode qui prend n et renvoie la n-ième nombre de Fibonacci. À l'intérieur de la méthode de la mise en œuvre-je utiliser BigDecimal pour obtenir le n-ième nombre de Fibonacci puis-je utiliser la méthode toBigInteger() pour obtenir le numéro de la BigInteger objet et c'est sûrement parce que je suis de travailler avec de grands nombres dans mon application.

Je continue à obtenir de bons résultats jusqu'à ce que je passe 1475 comme un argument en faveur de ma méthode. Je reçois NumberFormatException: Infinite or NaN dans ce cas, sans raison claire pour moi.

Pourriez-vous svp m'expliquer pourquoi ai-je cette exception?

Voici ma méthode:

BigInteger getFib(int n){
     double phi = (1 + Math.sqrt(5))/2;
     double squareRoot = (Math.sqrt(5)) + (1/2);
     BigDecimal bd = new BigDecimal(Math.floor(Math.pow(phi, n)/(squareRoot)));
     return bd.toBigInteger();
}

OriginalL'auteur Kareem | 2013-08-03