java,关于计算百分率的问题,希望高手指教!
/*循环录入java课的学生成绩,统计分数大于80分(包括等于)的学生比例.代码如下:*/importjava.util.*;publicclassfirst{publi...
/*循环录入java课的学生成绩,统计分数大于80分(包括等于)的学生比例.代码如下:*/
import java.util.*;
public class first {
public static void main(String[] args) {
int score; //每个学生的成绩
int total; //班级总人数
int num=0; //成绩大于或等于80分的人数
System.out.print("输入班级的总人数:");
total=new Scanner(System.in).nextInt();
for(int i=1;i<=total;i++) {
System.out.print("输入第"+i+"位的成绩:");
score=new Scanner(System.in).nextInt();
if(score<=80) {
continue;
}
num++;
}
System.out.println("大于80分的人数是:"+num);
double rate=(double)num/total*100;
System.out.print("大于80分的人数的百分率为:"+rate+"%");
}
}
想不明白为什么"double rate=(double)num/total*100;"里的num前面要加上double???
int型的num要转换成double型的rate,本来就是放大转换啊!
而且我做过试验了,把num前的double去掉,无论有几个大于等于80分的人数,百分率总是0%,想不明白为什么,请高手赐教!!! 展开
import java.util.*;
public class first {
public static void main(String[] args) {
int score; //每个学生的成绩
int total; //班级总人数
int num=0; //成绩大于或等于80分的人数
System.out.print("输入班级的总人数:");
total=new Scanner(System.in).nextInt();
for(int i=1;i<=total;i++) {
System.out.print("输入第"+i+"位的成绩:");
score=new Scanner(System.in).nextInt();
if(score<=80) {
continue;
}
num++;
}
System.out.println("大于80分的人数是:"+num);
double rate=(double)num/total*100;
System.out.print("大于80分的人数的百分率为:"+rate+"%");
}
}
想不明白为什么"double rate=(double)num/total*100;"里的num前面要加上double???
int型的num要转换成double型的rate,本来就是放大转换啊!
而且我做过试验了,把num前的double去掉,无论有几个大于等于80分的人数,百分率总是0%,想不明白为什么,请高手赐教!!! 展开
5个回答
展开全部
num/total小于1,num、total是int型,num/total就是int,结果是0
如果加上(double),num/total就是double,不会截成0了
如果加上(double),num/total就是double,不会截成0了
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你的num/total*100是Integer整型,rate是双精度double型。
num/total*100想要转换成double肯定需要强转的。
int型是不能带小数点的吧,好好想想,数据类型的转换。
num/total*100想要转换成double肯定需要强转的。
int型是不能带小数点的吧,好好想想,数据类型的转换。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
double rate=num/total*100虽然这样语法上没错,但他得到的不是小数,你要求的是百分率,所以先把num转换成double,在除
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
明显你整数的除法没搞清楚。
比如:
int a=8;
int b=10;
a/b的结果只取整数位为0。
比如:
int a=8;
int b=10;
a/b的结果只取整数位为0。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |