• Class / Function / Type

      std::
    • Header file

      <>
    • Other / All

    最終更新日時(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