今天呢來教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控制輸出來解決

那麼這次的教學就到此為止,謝謝~

 

若想閱讀相關文章請關注我的粉絲團

小資菜鳥向前衝

https://www.facebook.com/%E5%B0%8F%E8%B3%87%E8%8F%9C%E9%B3%A5%E5%90%91%E5%89%8D%E8%A1%9D-204484273323335/?fref=ts

 

文章標籤
創作者介紹

cychss6305的部落格

cychss6305 發表在 痞客邦 PIXNET 留言(0) 人氣()