为啥从1后面就出现误差了,运行结果是57.119999

#include

int main()
{
float a;
a=57.12;
printf("%f",a);
return 0;
}

double精度丢失问题,要不就直接保留两位

#include<stdio.h>

int main()
{
float a;
a=57.12;
printf("%.2f",a);
return 0;
}

float是用二进制表示数字的,这种情况很正常。
用printf("%.*1f", a) 试试