Java中变量类型之间有什么需要注意的吗?

monster0angle 2017-07-11 04:02:27
阶乘倒求和:sum是double型,m一开始是int型,但是运行总是出错,改为double型后,正常运行,可他们之间没有直接的关系,这是为什么?
double sum=0;
int j=1;
double m=1; //m改为整形,为什么运行会出错,它与sum没有直接的关系啊
while(j<=10){ //确立循环条件
m=m*j; //构造阶乘函数
sum=sum+1/m; //求和
j++;
}
System.out.println("1+...+1/"+(j-1)+"!的和为:"+sum);
...全文
621 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
monster0angle 2017-08-09
  • 打赏
  • 举报
回复
不好意思,我用词不准确,[size=16px]并不是运行出错,而是运行后得到的最终结果有错误[/size]。这个程序,它的过程是对的。在这个帖子中,只考虑最终的运行结果
solomon415 2017-08-09
  • 打赏
  • 举报
回复
运行怎么出错了,害的我又敲一遍。浪费大家时间,请以后用词准确点。
monster0angle 2017-08-08
  • 打赏
  • 举报
回复
我的sum是double型的 虽说输出结果也是double型,但是换脑子想一下1到10的阶乘的倒的和是double型的,但是会等于1.0吗,这明显就不正确,如果m改为double型,结果就不会出错,我纠结的就是这里!可是这么久了,评论里一个都没说到点上!
csdn2750 2017-07-16
  • 打赏
  • 举报
回复
没有调研就没有发言权,这哪里运行报错了??
墨笙弘一 2017-07-16
  • 打赏
  • 举报
回复
正如楼上所说的,是不会报错,只是运行结果不一样,int相除和double相除是有一定区别的 还是希望楼主多试验多理解
monster0angle 2017-07-15
  • 打赏
  • 举报
回复
m是int型的 但是它与double型的sum没有直接的关系 1/m才是double型的 这应该不是关于隐式转换的问题
M义薄云天 2017-07-12
  • 打赏
  • 举报
回复
基本数据类型运算包含隐式转换,int跟double运算自动转为double的,不能用int类型接收
M义薄云天 2017-07-12
  • 打赏
  • 举报
回复
基本数据类型运算包含隐式转换,int跟double运算自动转为double的,不能用int类型接收
李德胜1995 2017-07-11
  • 打赏
  • 举报
回复
是运行结果不正确,不是出错,int型的m=2,1/2=0,double型的m=2,1/2=0.5.....

58,454

社区成员

发帖
与我相关
我的任务
社区描述
Java Eclipse
社区管理员
  • Eclipse
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧