今天呢來教cout的輸出控制,就是控制可以印出幾個位數
很多題目都會要你印出小數點後第幾位,但是只用cout沒辦法控制
所以今天要教的就是
setprecision() //在括號中打入需要的位數
首先,得在最上面打上
#include <iomanip> 才能使用
接下來
假設5.12345
只需印出5.12
該怎麼寫呢
就是這樣
setpresion()中的3呢,代表的是
5.12→5 一個位數,1 一個位數,2 一個位數
不包括小數點,小數位數加上整數位數共3個位數
所以
執行的結果是
雖然,按照上面的方法也可以解決指定小數點後要幾位的問題
但是如果要印
1354654136548973787426794654.54415675165951674664646
這個數的小數點後的第18位,用上面的方法就很困難了
所以
再加上一個fixed
執行結果就會變成這樣
變成小數點後面第三位了
再來,還有一個問題
這樣會印出甚麼結果來呢
5.12345
5.123
5.12345
嗎?
但是實際上不是這樣
為甚麼最後一行會是5.123呢?
因為用setprecision跟fixed之後,後面所有的cout都會受到它影響
要怎麼處理呢?
加上這個
cout.unsetf( ios::fixed );
執行結果如下
從上面可以看出最後一行cout出來的結果跟
不加fixed的 cout<<setprecision(3)<<a<<endl; 一樣
cout.unsetf( ios::fixed );這行就是用來關掉fixed功能
所以在最後的cout才不會受到前面fixed的影響
但是
setprecision(),目前因為我才疏學淺,找不到關掉功能的辦法
所以,在setprecision()之後的輸出
就一樣用setprecision()跟fixed控制輸出來解決
那麼這次的教學就到此為止,謝謝~
若想閱讀相關文章請關注我的粉絲團
小資菜鳥向前衝
留言列表