数値の型変換 int型の変数aに実数値1.23456を格納しているfloat型の変数bを代入すると整数値の部分のみが変数aに格納されます

てんC「次のプログラムをご覧ください。」



#include <iostream>


using namespace std;


int main() {


int a;

float b = 1.23456;


a = b;


cout << a << "\n";


return 0;


}

てんC「このプログラムでは


ビルド結果



警告 C4305 '初期化中': 'double' から 'float' へ切り詰めます。 8

警告 C4244 '=': 'float' から 'int' への変換です。データが失われる可能性があります。


が表示されますが


ちゃんとプログラムを実行でき


コンパイル結果


1


が表示されます


このように


整数値を格納することのできる


int型の変数aに


実数値1.23456を格納しているfloat型の変数bを代入すると


小数点以下の部分である


0.23456


は切り捨てられて


整数値の部分である1のみが


変数aに格納されます。」




マックス「なるほど


警告 C4244 '=': 'float' から 'int' への変換です。データが失われる可能性があります。



小数点以下の部分が切り捨てられるということを警告しているわけか。」




てんC「そうなのです


そして


今の場合とは逆に


float型の変数bに


整数値123456を格納しているint型の変数aを代入すると


整数値123456は実数値に変換されて


変数bに格納されます。



次のプログラムをご覧ください



#include <iostream>


using namespace std;


int main() {


float b;


int a=123456;


b=a;


cout << b<< "\n";


return 0;


}




コンパイル結果


123456



マックス「123456が表示されている・・・


しかし


この123456は


実数値を格納するfloat型の形式で格納されているのか・・・」



てんC「はい そうなのです


float型の変数bに格納された整数値123456は


float型の形式で


         実数値として



格納されることになります。



同じ数値123456を格納するように見えても


整数値を格納するint型の形式と


実数値を格納するfloat型の形式では


データの格納方法がことなるのです。


そして


cout << b<< "\n";



実行されると


コマンドプロンプト画面に


123456



表示されます」


マックス


「C言語の場合では


float型の変数bに


整数値123456を格納しているint型の変数a


を代入すると


下のプログラムのように→


#include <stdio.h>


int main(void) {


float b;


int a=123456;


b=a;


printf("%f\n",b);


return 0;


}


コンパイル結果


123456.000000


→にゃお~


コンパイル結果に


実数値が表示されたんだがな。


そうなので


整数値123456は


float型の変数bに実数値に変換されて格納されることが


わかりやすかった


C++言語では


123456だけが


コンパイル結果に表示され


小数点以下の.000000は表示されないので


int型の変数aに格納されている整数値123456が


実数値に変換されて


float型の変数bに格納されているのがわかりにくいな~


でも数値の型変換はおこなわれているというわけだ。」

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る