好,我来回答你。首先:%f代表会输出一个float的数据,意思是带小数点的(这你应该会懂吧,废话了,但知道这很重要)。".7":代表如果你输出的数在小数点之后如果超过7位的话就会省略7位之后的数,之后的四舍五入。比如原来的数是:5.12345678.如果.7了的话输出的数就是5.1234568.如果是.6的话就会成为:5.123457。好,这是说了小数点之后的。那之前的呢,其实也差不多的道理,但是如果你的数大于小数点之前的数也不会去掉的,会保留你原来的数据。防止数据的丢失。我是不是说得太多,如果不懂可以baidu hi我。。。
这个的意思就是输入或输出时,整个浮点型数据占8列,小数点后面占7列。但是如果你输入的数据如123.45678912,那么输出的应该为123.4567891,即%m.nf,当输入的m大于8,则突破限制小数点前的按原样输出,后面仍然输出7列。
lz说得是printf的格式控制时用的形式吧.
表示对这个float类型的数的输出,整数部分如果不够8位则在左边补0,如果超过8位则原样输出.
小数部分输出7位.
%8.7f是指定输出格式,浮点数,宽度为8,保留小数7位
参见http://baike.baidu.com/view/410546.htm
scanf,printf等函数中格式控制,数值宽度8位,小数点后7位