四捨六入五成雙(還沒寫完!!) === ### 另外一種小數方式(這篇還沒完成) > <span style="color:red;font-size:26px">前提 : C++的底層設計細節,四捨六入五成雙</span> > 這是更細節的設計方式 #### 四捨六入五成雙 這是一種更精細的計算方式,其實就是四捨六入,如果是五的話則看五後面有沒有有效數字則進位,否則不進位。下面舉例。 上面使用的方法是 I/O 格式化旗標,其實還有其他的方式,就是引用 iomanip 這個函式庫底下的 setprecision 方法。裡面放的參數代表你要看幾個位數,以下面為例。 ```cpp= #include <iostream> #include <iomanip> using namespace std; int main(){ double c = 5.44445; cout << setprecision(5) << c; //這邊會印出5.4444 } ``` **今天只單純呼叫 setprecision 函式的時候,這個參數 5 會包括整數位數**,所以只會印出 5.4444,一個整數位數加上四個小數位數,共五位。 **注意:setprecision 會四捨五入哦。** ```cpp= double c = 5.444455; setprecision(5); cout << c; //這邊會印出5.4444 ``` 那如果今天只想針對小數點後做操作而且要四捨五入,則要加上前面提到的 fixed 格式化旗標,像下面這個例子。 ```cpp= #include <iostream> #include <iomanip> using namespace std; int main(){ double c = 5.444445; cout.setf(ios::fixed); setprecision(5); cout << c; //這邊會印出5.44445 } ``` 我們取到小數點後第六位四捨五入進位到小數點後第五位,所以印出 5.44445,這個時候就不管整數位數了。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up