C语言中如何将int转换为float?

2024-01-17

我正在尝试解决:

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(使用前将#替换为@)

C语言中如何将int转换为float? 的相关文章

随机推荐