C++_ std::setprecision と std::fixed ( 桁数指定 )

桁数指定の時に使用するが、分からないまま使用しているので調べた。ほぼコペ。

※ #include <iomanip> が必要。

 

std::setprecision

浮動小数点数を出力する精度を設定するマニピュレータ。

マニピュレータ:ストリームに対して、何らかの操作を行うオブジェクト。
ストリーム        :文字列ストリーム、入出力ストリーム。
precision            :精度

     std::cout << std::setprecision(2) << 3.141; // "3.1"

 

※注意※
整数部桁数に含まれる
整数部の桁数が、指定した桁数以上の場合は小数部は出力されなくなる。
また、小数部のゼロ埋めがされない。

    std::cout << std::setprecision(2) << 12.3; // "12"
    std::cout << std::setprecision(2) << 3.0; // "3" (3.0ではない)

 

std::fixed

浮動小数点数小数点表記で出力することを指示する。
小数点以下の長さは固定。つまり小数部の桁数を正確に設定できる。

fixed       :一定、決まった、不変。

     std::cout << std::fixed << std::setprecision(2) << 3.141; // "3.14"
   
    //以下のようにもかける
    std::cout << std::fixed;
    std::cout << std::setprecision(2) << 3.141; // "3.14"
    std::cout << std::setprecision(2) << 3.0;   // "3.00"

 

なお、std::scientific を使えば指数表記による出力ができる。
指数表記: 10 の n 乗をかけた数値。ex ) X E+03 、X * 10^3 ( = 1000 * X ) 

 

 

こちらから。
http://marycore.jp/prog/cpp/stream-format-float/
https://cpprefjp.github.io/reference/iomanip/setprecision.html
https://cpprefjp.github.io/reference/ios/fixed.html
https://ppp-lab.sakura.ne.jp/ProgrammingPlacePlus/cpp/library/030.html
http://wa3.i-3-i.info/word14959.html
http://www.cc.kyoto-su.ac.jp/~yamada/programming/float.html
http://oto-suu.seesaa.net/article/204829406.html

数値を指数表現 (指数関数) で表示する - Excel

 

以上。