回覆列表
-
1 # 快樂與我同行9
-
2 # 使用者5443769950533
對於浮點輸出格式來說
%m。nf
其中m是輸出寬度,n是精度,f是格式化控制符
m指定的是輸出數字字串的最小長度,比如你輸出
printf( "%2。3f" , 123。
456 ); // 由於實際輸出的數字123。456共有7個字元,大於2個字元數量,所以這裡的2其實實際上沒起到什麼作用,不過如果你printf( "%8。3f" , 123。456 );,8-7=1,那麼結果將在數字前面補一個空格字元,使用printf( "。
3f" , 123。456 );則是補一個字元"0"
所以e如果存在於被輸出的數字串裡的話(比如使用%e),它也是要佔用m的計數的,包括小數點。
n則是指定輸出精度,也就是小數點後保留幾位,預設不指定。
n的時候printf會自動調整輸出到預設精確位,如果指定了n的話,printf則把數字保留小數點後n位輸出。
所以printf( "%f", 123。456 );如果輸出123。456000的話,那麼printf( "%。
2f", 123。456 );則輸出123。46,。
%2.5f表示以浮點數格式輸出變數的值,寬度為2,小數位數為5,寬度不夠,以實際為準。
%.4f表示以浮點數格式輸出變數的值,小數位數為4,寬度以實際為準。
%6d表示以整數十進位制格式輸出變數的值,寬度為6。