| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 743 人关注过本帖
标题:[讨论]怎么计算超长的数据?
取消只看楼主 加入收藏
liguoshi1984
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2007-7-4
收藏
 问题点数:0 回复次数:2 
[讨论]怎么计算超长的数据?

我在做一道练习时遇到了一个问题.如下
编写一个java应用程序,计算1+2!+3!+4!+......从第100项到第200项之和.
我用的是double类型的数据.可是编出来之后从第171项开始,也就是171! 已经超过了10的308次幂,显示infinity.
如果我要范围更大的浮点数应该怎么办?

public class E
{
  public static void main(String[] args)
  {
   int i,j;
   double sum=0,m;
    for(i=100;i<=200;i++)
    {
     m=1;
       for(j=1;j<=i;j++)
       {m=m*j;
        }
    System.out.println(i+"m="+m);
    sum=sum+m;
     }
   System.out.println("sum="+sum);
  }
}

[此贴子已经被作者于2007-7-4 8:38:39编辑过]

搜索更多相关主题的帖子: 数据 double public java class 
2007-07-04 08:22
liguoshi1984
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2007-7-4
收藏
得分:0 

谢谢!还不知道怎么用这个类,不过我会查查文档.

2007-07-05 17:02
liguoshi1984
Rank: 1
等 级:新手上路
帖 子:89
专家分:0
注 册:2007-7-4
收藏
得分:0 

能算了,可是显示的结果很长,不知道有没有转成科学计数法的方法。
其实用这个类提供的方法是可以把指数形式拼出来的,就是多写几行而已。

[CODE]import java.math.*;
public class E
{
public static void main(String[] args)
{
int i,j;
BigDecimal sum=new BigDecimal(0);
BigDecimal m=new BigDecimal(0);
for(i=100;i<=200;i++)
{ m=BigDecimal.valueOf(1);
for(j=1;j<=i;j++)
{BigDecimal a=new BigDecimal(j);
m=m.multiply(a);
}
sum=sum.add(m);
}
System.out.println("100项到200项之和为:"+sum.toString());
}
}[/CODE]

[此贴子已经被作者于2007-7-5 21:10:01编辑过]

2007-07-05 20:58
快速回复:[讨论]怎么计算超长的数据?
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022792 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved