1. 程式人生 > >C++ 精度控制

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);                                             //取消精度的設定