我想要将e的值近似到任何所需的精度。做这件事最好的方法是什么?我能得到的最多是e= 2.7182818284590455。任何关于修改以下代码的示例都将受到欢迎。
public static long fact(int x){
long prod = 1;
for(int i = 1; i <= x; i++)
prod = prod * i;
return prod;
}//fact
public static void main(String[] args) {
double e = 1;
for(int i = 1; i < 50; i++)
e = e + 1/(double)(fact(i));
System.out.print("e = " + e);
}//main发布于 2009-09-26 18:12:19
您的主要问题是double的精度非常有限。如果你想要任意的精度,你必须使用BigDecimal。你将遇到的下一个问题是long的有限范围,在阶乘中你很快就会超过这个范围--在那里你可以使用BigInteger。
https://stackoverflow.com/questions/1481780
复制相似问题