最終更新日時(UTC):
が更新

履歴 編集

function
<iomanip>

std::setprecision

namespace std {
  unspecified setprecision(int n);
}

概要

浮動小数点数を出力する精度を設定する。

効果

このマニピュレータをストリームオブジェクトに適用することにより、以下の関数と等価の効果を持つ:

void f(std::ios_base& str, int n) {
  str.precision(n);
}

このマニピュレータは、入力ストリームと出力ストリームのどちらに対しても適用できる。

#include <iostream>
#include <iomanip>
#include <limits>

int main()
{
  constexpr int d = std::numeric_limits<float>::max_digits10;
  std::cout << d << std::endl;

  float f = 3.145900F;
  std::cout << std::setprecision(d) << std::scientific << f << std::endl;
}

出力例

9
3.145900011e+00

小数点以下の出力桁数を指定する例

#include <iostream>
#include <iomanip>
#include <limits>

int main()
{
  float f = 3.145900F;

  // デフォルトは整数部も含めた桁数指定
  std::cout << std::setprecision(3) << f << std::endl;
  // std::fixedを同時に使用することで小数点以下の桁数指定になる
  std::cout << std::fixed << std::setprecision(3) << f << std::endl;
}

出力例

3.15
3.146