☆数値の型変換 int型の変数に 実数値を代入すると実数値は整数値に変換されます



☆数値の型変換 int型の変数に 実数値を代入すると実数値は整数値に変換されます☆



カールトン 「これなんだ。ソーラー。」


カールトンがパソコン画面を指さす。


ソーラー 「どうされたんですかっと。」


カールトン 「うちの銀行の預金客の通帳に利息をつけよう


としたんだが・・・」


ソーラー 「どれどれ?」


パソコン画面を覗き込むソーラー


そこには


#include <stdio.h>


int main(void)

{

int a;

a=1.05;


printf("あなたの預金額はただいま%d円です。\n",10000*a);

return 0;

}



プログラムが表示されている。


ソーラー 「このプログラムは・・・」


カールトンがにやっとわらう。


カールトン 「これはうちの銀行の預金客の口座情報さ。」


ソーラー「わっこれは貴重なものをみせてもらいました。」


カールトン 「この客は今10000円ほど うちの銀行に預金している。


printf("あなたの預金額はただいま%d円です。\n",10000*a);の中の


10000がそれにあたる。そして今日はめでたく利息の満期日なので


int a,

a=1.05;


とaのint型の変数宣言、初期化し


このお客の現金10000円に5%の利益をつけようとしたわけだ。」


ソーラー 「なーるほど。10000*aのaにa=1.05;


と1.05を代入し5%の利益をつけようとしているわけだ。


そうしてあなたの預金額はただいま10500円です。


を表示したいというわけなんですね。


いいんじゃないですか。式はまちがってないと思いますよ。」


カールトン 「ところがだ、


このプログラムの実行結果(EAZY IDECの場合)は


あなたの預金額はただいま10000円です。となる。


プログラムの実行結果(Visual Studioの場合)は

C4244 '=': 'double' から 'int' への変換です。データが失われる可能性があります。 Project6 c:\users\solarplexuss\source\repos\project6\project6\source.cpp 6


とエラー文が表示されますが


プログラムを実行すると


あなたの預金額はただいま10000円です。となる。


何回、プログラムを実行しても


あなたの預金額はただいま10000円です。


この結果なんだ。


どうかな原因、わかりそうか?」


ソーラー「よーし、じゃんじゃん、ばりばり、やっちゃうぞー。」


カールトン 「がはは、その意気だ、たのんだぞ。」


ソーラーの肩をばんばんたたいて銀行業務にもどっていくカールトン。」


ソーラー 「ふん、ふーん、今日は調子がいいんだなー。


ちらっと


さきほどの白い貴婦人のことが思い出される。


真っ白い、白い刺繍のドレスの彼女・・・ああっ 美しい。


うふ、ああ~ん、は、恥ずかしい。みもだえしちゃうな。


さあ元気がでてきたぞ。やるか。


まず、


#include <stdio.h>


int main(void)

{

int a,

a=1.05;


printf("あなたの預金額はただいま%d円です。\n",10000*a);

return 0;

}


このプログラムのこの部分


ここ、ここ、これこれナンデスヨ~~


もっていたかんかん帽をくるくると人差し指でまわす。


ずばり


int a,

a=1.05;


この部分だね(^^)


秘密があるのは・・・


int aのintは変数aが整数値をとるときの


整数値を格納する変数専用のいれものだったよね。


そこに


a=1.05;と


int型の変数aに


1.05という


実数を代入してしまったので 


本来はdouble型におさめられる実数1.05が


(🌞

int a,

a=1.05;


を実行するとき


まず

この1.05はdouble型の形式でメモリに格納されます


その後


int型の変数aに格納されていくことになります🌞)



整数の型intに収まるよう


実数値1.05から

       

  🍓数値の型変換されて🍓



整数値1に変換されています。


小数点以下の0.05が切り捨てられたわけだね。



その結果


10000*a=10000*1となり


printf("あなたの預金額はただいま%d円です。\n",10000*a);


のなかの


10000*a=10000となるんだよね。


だから


あなたの預金額はただいま10000円です。


と最終的にprintf出力表示されているのです。


簡単だね」


🌞  🌞  🌞

このように


int a;

と変数宣言された変数aに


実数値を代入すると


その実数値は


整数値に変換されます


int型の変数aに


1.3456


を代入すると

1に


int型の変数aに


555.55555


を代入すると


555となります。


この際

小数点以下の項は切り捨てられます


555.55555が四捨五入されて


556となるということはありません。


このように


int a;と変数宣言された変数aに


実数値を代入すると


整数値に変換されることを


数値の型変換といいます。


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

作者を応援しよう!

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

応援したユーザー

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

新規登録で充実の読書を

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

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

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