其实只有在学校才会使用的java编程,我都已经很久没有编写过这种代码了。别人找我做我也只能知道思路,具体怎么编写其实一点都不记得了。平时都是编写B/S模式的,和这个还真没什么关系,看了看别人的代码是怎么写的才想起来,真是脑子不好使啊!

题目:用e=1+1/1!+1/2!+1/3!+ ……的公式求e的近似值,直到最后一项的绝对值小于10-6为止,并将输出结果保存在文件java_11.txt中。

这里主要就是两个方面,一是1/fun(i)得到的值一直都是0,虽然给他定义的是double,但是还是没有用,尝试用BigDemical还是不管用,直到(double)强转的出现解决了。二是文件怎么存储到txt文档中去,这也是从网上扒下来改的。希望自己留着以后可以借鉴吧!

package test;

import java.io.FileWriter;

import java.io.IOException;

public class test {

static int  fun(int i){

int m = 1 ;

for(int n =1 ; n <= i ; n++){

m*=n;

}

return m ;

}

public static void main(String[] args) {

int i = 1 ;

double e = 1 ;

while(Math.abs(fun(i))<=1000000){

e+= (double)1/fun(i);

i++;

}

FileWriter fileWriter; 

try {

fileWriter = new FileWriter("E:\\java_11.txt");

fileWriter.write(String.valueOf("e的近似值为:"+e));

fileWriter.flush();

fileWriter.close();

} catch (IOException e1) {

                    // TODO Auto-generated catch block

e1.printStackTrace();

}

}

}