2016年4月25日星期一

除法小数点后不能正常显示的问题

例如:

#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);
}

1 条评论:

  1. 上面的解决方式略显笨拙,更加正统的解决代码应该应用类型转换符。如下所示:

    #include

    void main() {
    float num = 17 / (float) 13;
    printf("The result is %.2f \n", num);
    }

    回复删除