例如:
#include <stdio.h>
void main() {
float num = 17 / 13;
printf("The result is %.2f \n", num);
}
这段程序输出的结果为1.00.
导致这种情况出现的原因是除法表达式17/13在编译器中默认为两个integer相除,所以会自动抛去小数点后面的数字。
应该进行如下修改:
#include <stdio.h>
void main() {
float num = 17.0 / 13.0;
printf("The result is %.2f \n", num);
}
上面的解决方式略显笨拙,更加正统的解决代码应该应用类型转换符。如下所示:
回复删除#include
void main() {
float num = 17 / (float) 13;
printf("The result is %.2f \n", num);
}