数字越界了!
要知道long型的变量只能储存20!,你用普通计算器算一下就知道阶乘大的有多可怕了
你竟然想用int 储存10000!
另外阶乘的函数可以用递归写,

解决方案 »

  1.   

    还有Math.E=2.7182818284590452354(double)
    号称比任何一个其他double都接近e
      

  2.   

    我把源程序改成// Java Applet 自然数e
    import java.applet.Applet;
    import java.awt.*;
    public class ZiRanShue extends Applet
    {
    int JieCheng(int i)
    {
    int j,result=1;
    for(j=1;j<=i;j++)
    {
    result*=j;
    }
    return result;
    }
    public void paint(Graphics g)
    {
    int i;
    double e=0.0000;
    while(e<10000.0000) //加了while语句来控制e小于10000{
    for(i=1;;i++)
    {
    e+=1/JieCheng(i);
    }
    }
    g.drawString("自然数e误差小于0.0001的近似值是:"+e,10,20);
    }
    }还是不行编译的时候没有问题,用AppletViewer查看时又出现问题:---------- AppletViewer ----------
    java.lang.ArithmeticException: / by zero
    at ZiRanShue.paint(ZiRanShue.java:23)
    at sun.awt.RepaintArea.paint(RepaintArea.java:177)
    at sun.awt.windows.WComponentPeer.handleEvent(WComponentPeer.java:260)
    at java.awt.Component.dispatchEventImpl(Component.java:3587)
    at java.awt.Container.dispatchEventImpl(Container.java:1582)
    at java.awt.Component.dispatchEvent(Component.java:3368)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:445)
    at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:191)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:144)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:130)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:98)
    Normal Termination
    输出完成 (耗费 10 秒)。
      

  3.   

    你还是没搞懂,首先越界的是阶乘部分
    int j,result=1;
    for(j=1;j<=i;j++)
    {
    result*=j;
    }
    中的result,不是e,
    int的最大值2147483647,而20!就已经2432902008176640000了,21!连long型都不够放了
      

  4.   

    while (result<10000)
    {
    for(j=1;j<=i;j++)
    {
    result*=j;
    }
    }我有添加了一个while 语句用来控制使result小于10000,AppletViewer可以打开,没有任何提示错误,但是页面上什么都没有啊!
      

  5.   

    我晕,你写错了,要把前面的类形改一下把返回类形改用,double,还有你上面没有执行applet和语句,当然没有东西了!!