【发布时间】:2013-08-04 09:45:23
【问题描述】:
我有一个方法,它接受 n 并返回第 n 个斐波那契数。在方法实现中,我使用 BigDecimal 获取第 n 个斐波那契数,然后我使用方法 toBigInteger() 将数字作为 BigInteger 对象获取,这肯定是因为我在我的应用程序中处理大量数字。
我一直得到正确的结果,直到我将 1475 作为我的方法的参数传递。在这种情况下,我得到NumberFormatException: Infinite or NaN,我没有任何明确的理由。
能否请您解释一下为什么会出现此异常?
这是我的方法:
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();
}
【问题讨论】:
标签: java fibonacci numberformatexception