c语言printf(“x1=%8.4f,x2=%8.4f\n”,x1,x2);中的%8.4f是什么意思?

d=b*b-4*a*c;
if(d>=0)
{x1=(-b+sqrt(d))/2a;
x2=(-b-sqrt(d))/2a;
printf(“x1=%8.4f,x2=%8.4f\n”,x1,x2);
}
else
{r=-b/(2*a);
i =sqrt(-d)/(2*a);
printf(“x1=%8.4f+%8.4fi\n”r, i);
printf(“x2=%8.4f-%8.4fi\n”r,i)
}
printf(“x1=%8.4f+%8.4fi\n”r, i);
printf(“x2=%8.4f-%8.4fi\n”r,i)
中的%8.4f+%8.4fi\n和%8.4f-%8.4fi\n怎么理解呀谢谢

若单说%8.4f,表示的是输出8个字符位宽,其中小数4位,小数点占一位,右对齐。
对于“%m.nf”,指的是定义输出实数的格式时可以加以精度限制。输出的实数共m(m为整数)个字符位宽,其中小数位n(整数)位,小数点占一位,右对齐。若整数位不足m位,左补空格,小数位不足n位右补空格。若整数位定义不足,则定义无效,整数位会全部输出。
%f表示的是输出浮点数。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-02
%8.4f——输出浮点数,占宽8字符(含4位小数、1位小数点)右对齐。当小数部分不足4位时右补0至4位;数据整个长度不足8位时前端补空格至8位;如整数部分较长使整个数据长度超过8位时按实际长度输出,保证小数点后是4位(包括补入的0)。
第2个回答  2009-03-10
"8"表示输出的宽度,".4"表示小数点后保留4位,"f"表示输出的是浮点数
第3个回答  2012-11-30
有空常联系
第4个回答  2009-03-11
dfh