java 两个int类型 用/相除 为什么没反应?

int qNum =Integer.parseInt((String)BackNmqHTMLAction.getQuestNum(nmqs.quest_id));
int aNum =Integer.parseInt((String)BackNmqHTMLAction.getAnswerNum(answers.answer_id));
int nums=(aNum/qNum)*100;
System.out.println("aNum="+aNum);
System.out.println("qNum="+qNum);
System.out.println("nums="+nums);

输出结果:
aNum=3
qNum=6
nums=0

java编程里面的/ 除法运算不能看成数学里面的除法运算, 这是两个不同的。
数学里面相除 3 /6 * 100 = 50
但是程序里面 运行是 两个整数相除 ,除不尽就为0. 所以为0追问

那如我要得到结果呢?是不是要用float 类型?float x=aNum/qNum)*100;?

还是要像将两个int的先转成其他类型?
我想最终得到的是整数怎么办?

追答

恩 你可以定义两个float 或者double类型的  或者对int进行转型


最简单的办法就是

System.out.println(3*1.0/6*100);

用3*1.0  就可以得到浮点了。

温馨提示:答案为网友推荐,仅供参考
第1个回答  2015-06-03
因为这是一个取整操作!