歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux編程 >> Linux編程 >> C++浮點數小數位輸出控制

C++浮點數小數位輸出控制

日期:2017/3/1 9:42:35   编辑:Linux編程

按有效位輸出是 setprecision,按小數位數輸出也是setprecision,但到底是誰取決於fixed。

cout << resetiosflags(ios::fixed) << setprecision(n) << float-point-number; 是按n位有效數輸出

cout << setiosflags(ios::fixed) << setprecision(n) << float-point-number; 是按n位小數輸出

測試代碼:

#include <iostream>

#include <iomanip>

using namespace std;

int main( void )

{

const double value = 12.3456789;

cout << value << endl; // 默認以6精度,所以輸出為 12.3457

cout << setprecision(4) << value << endl; // 改成4精度,所以輸出為12.35

cout << setprecision(8) << value << endl; // 改成8精度,所以輸出為12.345679

cout << fixed << setprecision(4) << value << endl; //include<iostream> 加了fixed意味著是固定點方式顯示,所以這裡的精度指的是小數位,輸出為12.3457

cout.setf(ios::fixed); //沒有include<iostream> ,設置為小數位始終有 6 位,沒有這個的話就會像上面那個代碼那樣固定的不是小數點後面的數字了。
cout << value << endl; //fixed和setprecision的作用還在,依然顯示12.3457

cout.unsetf( ios::fixed ); // 去掉了fixed,所以精度恢復成整個數值的有效位數,顯示為12.35

cout << value << endl;

cout.precision( 6 ); // 恢復成原來的樣子,輸出為12.3457

cout << value << endl;

}

C++ Primer Plus 第6版 中文版 清晰有書簽PDF+源代碼 http://www.linuxidc.com/Linux/2014-05/101227.htm

讀C++ Primer 之構造函數陷阱 http://www.linuxidc.com/Linux/2011-08/40176.htm

讀C++ Primer 之智能指針 http://www.linuxidc.com/Linux/2011-08/40177.htm

讀C++ Primer 之句柄類 http://www.linuxidc.com/Linux/2011-08/40175.htm

Copyright © Linux教程網 All Rights Reserved