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

arb*_*erb 19 java android

我试图划分两个整数并乘以100,但它只给出0或100.有人可以帮我吗?

    int x= (a/b)*100;
Run Code Online (Sandbox Code Playgroud)

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

谢谢

rid*_*ar2 42

你能做的就是强迫它分裂a,b因此加倍:

int x = (int) (((double) a / (double) b) * 100);
Run Code Online (Sandbox Code Playgroud)


Sim*_*nek 9

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

int x = a * 100 / b;
Run Code Online (Sandbox Code Playgroud)


Tej*_*ejs 6

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

(int)3 / (int)5 = 0
(float)3 / (float)5 = 0.6
Run Code Online (Sandbox Code Playgroud)