🌻天国にいけるC++言語入門🌻 進化し続けるオブジェクト指向プログラミング ver3.2307
数値の型変換 int型の変数aに実数値1.23456を格納しているfloat型の変数bを代入すると整数値の部分のみが変数aに格納されます
数値の型変換 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に格納されているのがわかりにくいな~
でも数値の型変換はおこなわれているというわけだ。」
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます