int main(void){
float a=3.14;
print("%2.10f",a);
return 0;
}
因为打印格式控制符是10位小数
而且float最高精度也只是6-7位。
你自己要求10位小数的啊,2.10表示整数部分2位,不足两位不补零;10表示小数部分10位
1049是精度问题
%2.10f是要求打印的字符总长度是2,小数位站10个,如果实际长度大于2,那么就按照实际长度显示,这里长度明显大于2,所以按照实际长度显示,也就是说这个2没有作用了。3.14后面补0,因为float的精度只有小数点后6位,3.14已经有2位小数了,所以只能在后面补4个0,还差的4位因为精度问题就是不确定的数了(1049这个数是随机的)