91
51

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

c++ 浮動小数点数 表示方法

Last updated at Posted at 2019-05-23

目次

  • fixed と setprecision で固定小数点表記の表示を自在に操る
  • scientific を用いて、指数表記の表示を自在に操る

fixed と setprecision で固定小数点表記の表示を自在に操る

メイン処理

std::fixed は小数部の桁数をより正確に指定したい場合には書式フラグです。fixedを使用しないと、setprecisionの指定した長さが整数部も含むことになります。
std::setprecision は入出力ストリームで浮動小数点型の桁数を指定出来るマニピュレータです。


#include <iomanip> // setprecisionを使用するのに必要
cout << std::fixed << std::setprecision(15) << y << endl;

サンプル

#include <iostream>
#include <iomanip>
using namespace std;

int main(){
  double y;
  y = 1.0 / 3.0;

  //普通にcout
  cout << y << endl;

  //小数点以下の長さを指定
  cout << fixed << setprecision(15) << y << endl;

  return 0;
}

出力結果

0.333333
0.333333333333333

scientific を用いて指数表記の表示を自在に操る

メイン処理

std::scientificは指数表記による出力を行いたい場合に使用します。cout << のあとに記載するだけで指数表記が表示できます。

cout << std::scientific << y << endl;
cout << std::scientific << std::setprecision(2) << y << endl;

サンプル

#include <iostream>
#include <iomanip>
int main(){
  double y;
  y = 31415.926535

  //単純に指数表記
  cout << scientific << y << endl;

  //指数表記 + 小数点以下長さ指定
  cout << scientific << setprecision(2) << y << endl;

  //指数表記 + 小数点以下長さ指定 + uppercaseでeの部分を大文字表記に
  cout << scientific << setprecision(2) << uppercase << y << endl;
  
  return 0;
}

出力結果

3.141592653500000e+04
3.14e+04
3.14E+04

まとめ

fixed で小数点以下だよと教えてあげる。 setprecision で小数点以下の長さを指定してあげる。
scientiicで指数表記を使うよと教えてあげる。

TAの採点の仕事が面倒くさい...

91
51
3

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
91
51

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?