第2講 変数
第5話 倍精度実数型変数
floatすなわち実数型変数の有効桁数は6〜7です。
桁数をオーバーしていたために、
第4話の現象が発生したことが予想されます。
そこで、倍精度実数型であるdoubleに変更してみましょう。
doubleがたいの有効桁数は15,16桁です。
  double c; //小数を入れる箱を用意

ところが実行結果は、
013
と変わりありません。
double型の有効桁数が15,16桁なのになぜでしょう。
理由は、coutにあります。
6桁までしか表示されないからです。
では11桁まで表示させるにはどうしたらよいでしょうか。
答えは、setprecision(11)を使うです。
ただし、これを使えるようにするためにiomanipという
ヘッダファイルを組み込む必要があります。
コードを次のように変更しましょう。
001
#include<iostream>
//入出力のために組み込む
#include<string>
//文字列変数を使えるようにするために組み込む
#include <iomanip>
//setprecisionを使えるように組み込む
using namespace std;
//coutを使えるようにするために必要
int main() {
  cout << "はじめてのC++プログラミング体験" << endl;
  cout << "まず変数から学ぼう!" << endl;
  int a; //整数を入れる箱aを用意
  a = 2; //整数を入れる箱に2を入れた。
  cout << "a=" << a << endl; //箱aの中身を表示
  string b; //文字列を入れる箱bを用意
  b = "私は文字列を入れる変数です。";
  cout << "b=" << b << endl; //箱bの中身を表示
  double c; //小数を入れる箱を用意
  c = 3.1415926535; //小数を入れる箱に3.1415926535を入れた。
  cout << "c="
<< fixed << setprecision(11) << c << endl; //は2018/03/27に追加
  return(0);
}
の注釈文(コメントともいいます)が変更されていることに注意してください。
学習が進んだのでより正確なコメントに変更しました。
ピンクが11桁まで表示させるために必要な付け加えです。
<< fixed は入れなくても正しく表示されますが、
局面によってはこれを入れないと正しく表示されないことがあるようですから、
入れるようにして下さい。−−−2018/03/27に追加)



さて、floatとdoubleの有効桁数を見るために、
コードを次ぎように変更しましょう。
#include<iostream>
#include <stdio.h>
#include <iomanip>
using namespace std;
int main(){
  float a,b;
  double c,d;
  a=1; c=1;
  b=3; d=3;
  cout<<"単精度の場合"<<a/b<<endl;
  cout<<"倍精度の場合"<<c/d<<endl;
  cout<<"小数第6位まで"<<endl;
  cout <<"単精度の場合"<< fixed << setprecision(6) << a/b << endl;
//ピンクは2018/03/27に追加
  cout <<"倍精度の場合"<< fixed << setprecision(6) << c/d << endl;
  cout<<"小数第7位まで"<<endl;
  cout <<"単精度の場合"<< fixed << setprecision(7) << a/b << endl;
  cout <<"倍精度の場合"<< fixed << setprecision(7) << c/d << endl;
  cout<<"小数第8位まで"<<endl;
  cout <<"単精度の場合"<< fixed << setprecision(8) << a/b << endl;
  cout <<"倍精度の場合"<< fixed << setprecision(8) << c/d << endl;
  cout<<"小数第15位まで"<<endl;
  cout <<"単精度の場合"<< fixed << setprecision(15) << a/b << endl;
  cout <<"倍精度の場合"<< fixed << setprecision(15) << c/d << endl;
  return(0);
}
実行結果
単精度の場合0.333333
倍精度の場合0.333333
小数第6位まで
単精度の場合0.333333
倍精度の場合0.333333
小数第7位まで
単精度の場合0.3333333
倍精度の場合0.3333333
小数第8位まで
単精度の場合0.33333334
倍精度の場合0.33333333
小数第15位まで
単精度の場合0.333333343267441
倍精度の場合0.333333333333333


実行結果から有効桁数がわかりますね。

さて、次の話では足し算について考えましょう。




第4話へ 第6話へ
 
002

初心者のための excel 2016 マクロ VBA 入門講義 基礎から応用まで
vc++ c言語 c++ 入門 初心者 基礎から応用まで
eclipse c++ 入門
魔方陣 数独で学ぶ VBA 入門

数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
本サイトトップへ