我试图划分两个整数并乘以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)
整数除法没有分数,所以500/1000 = 0.5(也就是没有整数!)被截断为整数0.你可能想要
int x = a * 100 / b;
Run Code Online (Sandbox Code Playgroud)
这听起来好像你没有正确输入你的变量; 两个整数除法产生一个整数,而不是float或double.例如:
(int)3 / (int)5 = 0
(float)3 / (float)5 = 0.6
Run Code Online (Sandbox Code Playgroud)