double d = 1/2.;
printf("%.2lf\n", d);
這會打印出0.50
。這是我想要使用ostream操縱器複製的。然而,沒有一個明顯的iomanip
操縱器讓我設置最小所需小數位(如果我理解正確,setprecision
設置最大寬度)。有沒有一個純粹的iostream
或boost
方式來做到這一點?ostream相當於%.2f或%.2lf
double d = 1/2.;
printf("%.2lf\n", d);
這會打印出0.50
。這是我想要使用ostream操縱器複製的。然而,沒有一個明顯的iomanip
操縱器讓我設置最小所需小數位(如果我理解正確,setprecision
設置最大寬度)。有沒有一個純粹的iostream
或boost
方式來做到這一點?ostream相當於%.2f或%.2lf
使用setprecision
結合fixed
。
根據該標準的第22.4.2.2.2節,iostream的精度規格與printf
的效果完全相同。並且fixed
給出與printf
的%f
完全相同的行爲。
可以使用std::fixed
和std::setprecision
從iomanip
頭:
#include <iostream>
#include <iomanip>
int main(void) {
double d = 1/2.;
std::cout << std::fixed << std::setprecision(2) << d << std::endl;
return 0;
}
根據需要此輸出0.50
。
你能給一個鏈接嗎? –
@FooBah:看到http://stackoverflow.com/questions/81656/where-do-i-find-the-current-c-or-c-standard-documents –