在Java中划分两个整数给我0或100?

时间:2011-12-29 15:38:46

标签: java android

我正在尝试将两个整数除以100乘以但它只给出0或100.有人可以帮助我吗?

    int x= (a/b)*100;

如果a为500且b为1000则会给我0.如果a>> = b,它将给我100的唯一时间。我该如何解决这个问题?

由于

5 个答案:

答案 0 :(得分:40)

你可以做的就是强制它将ab分成两倍:

int x = (int) (((double) a / (double) b) * 100);

答案 1 :(得分:9)

整数除法没有分数,所以500/1000 = 0.5(也就是没有整数!)被截断为整数0.你可能想要

int x = a * 100 / b;

答案 2 :(得分:6)

这听起来好像你没有正确输入你的变量;两个整数除法产生一个整数,而不是float或double。例如:

(int)3 / (int)5 = 0
(float)3 / (float)5 = 0.6

答案 3 :(得分:2)

试试这个:

int x = a * 100 / b;

这个想法是,你首先做a / b,因为它是一个整数运算,它会将结果四舍五入到0。首先执行a * 100应该修复它。

答案 4 :(得分:0)

我找到的最简单,最有效的方法:

double x = (double) a / (double) b