C++ 精度控制
轉自:http://blog.csdn.net/wuzh670/article/details/6183507
c++ 輸出精度控制
1.setprecision(n);
預設設定輸出的數字的總位數為n,包含整數和小數部分。
2.setiosflags(ios::fixed)
預設輸出6位,必須與setprecision(n)配合使用,用來控制小數位數,不夠補0
3.resetiosflags(ios::fixed);
取消精度的設定
double a= 12.3456789;
std::cout<<a<<std::endl; //輸出為12.3457,因為C++預設輸出6位
std::cout<<std::setprecision(5)<<a<<std::endl; //輸出為12.234,總的輸出位數為5
std::cout<<std::setiosflags(std::ios::fixed)<<std::setprecision(5)<<a<<std::endl; //輸出為12.34568,小數位數是5位,不夠補0;這個涉及到的是流的格式化。std::setiosflags(std::ios::fixed)主要是將流的格式設定為:fixed(將一個浮點數表示為一個定點整數和小數點和小數部分的格式)。然後setprecision(4)表示小數部分的精度為4位
std::cout<<std::resetiosflags(std::ios::fixed); //取消精度的設定