"yaw=%.2f"和f后面加空格"yaw=%.2f "输出浮点型数据为什么有时候显示的小数位不一样?

用stm32输出航向角在lcd屏幕上显示,用的是:
u8 buf[32];
sprintf((char *)buf,"Yaw:%.2f",Yaw);
LCD_ShowString(180,20,100,16,16,buf);
没空格时,一开始是整数位为1位,2位,3位时,都是2位小数,但如果到100多度反方向转回去角度减小时,总的数位就不会变,当整数减少1位,小数便增加1位,比如一百点几降到一点几,加上小数点6位永远不变,降到一点几时为了保持6位,小数位就有4位了,而加了空格却不会出现这种情况,这是为什么?

改这样的形式:sprintf((char*)buf, "Yaw:%6.2f", Yaw);6是总位数,2是小数位数。