为什么c语言编程float算出来有很多0

2025-06-26 17:23:00
推荐回答(1个)
回答1:

这不是“算出来”的问题,是输出函数printf的控制符用得不合适:%f的作用是按浮点型输出,默认保留6位小数,不足6位的后面用0补齐。想要不输出小数点后多余的0,用%g控制就可以了,它是所谓紧凑型输出,默认有效数字7位(连小数点)左对齐,在此范围内,小数点的实际有效位是多少就输出多少。举例代码如下:

//#include "stdafx.h"//If the vc++6.0, with this line.
#include "stdio.h"
int main(void){
    float a=123.456789111f,b=4.5020000f;
    printf("通常输出:%f %f\n",a,b);
    printf("紧凑输出:%g %g\n",a,b);
    return 0;
}

输出如下图: