C++ での浮動小数点のフォーマット 質問する

C++ での浮動小数点のフォーマット 質問する

C++ で float をフォーマットして、小数点以下 2 桁を切り上げて出力するにはどうすればよいですか?コンパイラは であるとだけ表示するためsetw、 とではうまくいきません。setprecisionnot defined

cout << "Total : " << setw(2) << total << endl;

総出力:Total : 12.3961

そうであってほしいです。12.40または、12.39切り上げるのが面倒すぎる場合。

ベストアンサー1

cout << fixedまたは およびcout.setf(ios::fixed)std::cout.precision(<# of decimal digits>)次のように使用します(OSX Mavericks に含まれている Clang-503.0.40 コンパイラを使用)。

#include <iostream>

int main()
{
   using namespace std;

   float loge = 2.718;
   double fake = 1234567.818;
   cout << fixed;
   cout.precision(2);
   cout << "loge(2) = " << loge << endl;
   cout << "fake(2) = " << fake << endl;
   cout.precision(3);
   cout << "loge(3) = " << loge << endl;
   cout << "fake(3) = " << fake << endl;
}

出力は次のようになります (丸めに注意してください)。

loge(2) = 2.72
fake(2) = 1234567.82
loge(3) = 2.718
fake(3) = 1234567.818

これは単純なバージョンです。 を使用する代わりに、 (科学的記数法を表示するには、 を に置き換えます)cout << fixed;を使用できます。cout.setf(ios::fixed);修理済み科学的; どちらも小数点の右側の桁数を設定します。フォーマットフラグに含まれていない場合、cout.precision() は小数点の両側に表示される合計桁数を設定するためにも使用されます。修理済みまたは科学的これに関するチュートリアルはインターネット上に存在します。

おすすめ記事