我正在尝试将两个整数除以100乘以但它只给出0或100.有人可以帮助我吗?
int x= (a/b)*100;
如果a为500且b为1000则会给我0.如果a>> = b,它将给我100的唯一时间。我该如何解决这个问题?
由于
答案 0 :(得分:40)
你可以做的就是强制它将a
和b
分成两倍:
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