我正在尝试解决:
int total=0, number=0;
float percentage=0.0;
percentage=(number/total)*100;
printf("%.2f", percentage);
如果数字的值为 50,总数为 100,我应该得到 50.00 的百分比,这就是我想要的。但我不断得到 0.00 作为答案,并尝试了对类型的许多更改,但它们不起作用。
整数除法会截断,所以(50/100)
结果为 0。您可以转换为float
(更好的double
) 或乘以100.0
(for double
精确,100.0f
for float
精度)第一,
double percentage;
// ...
percentage = 100.0*number/total;
// percentage = (double)number/total * 100;
or
float percentage;
// ...
percentage = (float)number/total * 100;
// percentage = 100.0f*number/total;
由于浮点运算不具有结合律,因此结果100.0*number/total
and (double)number/total * 100
可能略有不同(同样适用float
),但它极不可能影响小数点后的前两位,因此您选择哪种方式可能并不重要。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)