首页 热点资讯 义务教育 高等教育 出国留学 考研考公

java double转int出错

发布网友 发布时间:2022-04-24 13:00

我来回答

5个回答

热心网友 时间:2023-10-13 16:20

把double
value
=
result.size()/term;
改成double
value
=
(double)result.size()/term;
两个int值相处得到的值还是int,得把其中一个转换成double类型就可以了

热心网友 时间:2023-10-13 16:21

主要问题是
double
value
=
result.size()/term;
result.size()
term
必须至少一个是double类型
double
value
=
(double)result.size()/
(double)term;
不然的话
result.size()/term
由于两个数据的类型都是int
然后运算结果也是int

5/3
=1
。然后再转换成
double类型
1.0
所以后面的
if(value>(int)value)
value
=
(int)value+1.0;
不会执行。
看一下JAVA的数据类型的转换。

热心网友 时间:2023-10-13 16:21

首先,你看一下size()方法的返回值类型是什么?term是什么类型?如果都是int的话,5/3=1,如果其中有一个是double的话,5/3=1.6666667.
按照你这个题目来看,应该都是int,这样value=1,执行if(value<=1.0)value=1.0
,所以说输出1.0.
楼主欠缺一点基本功啊,再看一下基本数据类型,呵呵。

热心网友 时间:2023-10-13 16:22

5/3=1
第一个if
(1<=1.0
)
为真
value的值为1.0
第二个if(1.0
>
1)为假
value
=(int)value+1.0;
永远不会运算的
double

int
比较,int自动转换成double
再作比较

热心网友 时间:2023-10-13 16:22

你这只是一部分代码
我要看到全代码才知道哪里出错了

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com