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
とまったく同じ動作を示します。
あなたはiomanip
ヘッダからstd::fixed
とstd::setprecision
を使用することができる:所望のよう
#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を参照してください。 –