初心者ぬまよの一流エンジニアへの道

初心者ぬまよの一流エンジニアへの道

どーもぬまよです! 初心者が電子工作やゲーム開発を通して一流エンジニアに成長していく様を、初心者目線でブログにしています。

【C言語 #3】実数(小数)の計算結果を表示する

どーもぬまよです。


C言語 #2」では整数を「printf」で表示させるやり方を学びました。
次は実数のやり方を勉強しましょう!
整数と実数の違いはきちんとわかりますか?(ニヤリ)
ざっくり言うと整数は小数点がなくて実数は小数点があるです!
よくわからない人はネットで調べてみましょう。


実数と言ってもやり方はめちゃくちゃ簡単です!
整数とほぼ変わりませんから。
ということで早速コードを見ていきましょう!

#include <stdio.h>

int main(void) {
    //実数xに3を代入
    double x = 3.0;
    
    //文章に表示
    printf("xには%fが入力されている。\n", x);
    return 0;
}

整数の時と何が変わったかわかりますか?
「int→double」に「%d→%f」になっているんですね!
これを気づいたあなたはおそらくウォーリーを探せが上手いタイプですね?


さてこのコードを実行した結果がこちらでーす。

xには3.000000が入力されている。

見事に実数表示できてますね!


小数部分の桁数がやけに多くなっていますがここの部分は自分で調整することができます。
「%f」のところを「%.1f」にすると、、、

#include <stdio.h>

int main(void) {
    //実数xに3を代入
    double x = 3.0;
    
    //文章に表示
    printf("xには%.1fが入力されている。\n", x);
    return 0;
}
xには3.0が入力されている。

という風に小数部分が1桁だけになりました!
「%.2f」にすると2桁、「%.3f」にすると3桁という感じで、何も書かないとデフォルトで6桁になるようです。
他にも「%5.1f」みたいなやつとか「%05f」とかいろいろあるんですが書き出すとキリがないので今回は省略します!
気になる方は調べてみてください!


さて次は計算ですが計算もやり方一緒です。
コードと実行結果を見ていきましょう。

#include <stdio.h>

int main(void) {
    //実数xに3.0、実数yに2.0を代入
    double x = 3.0;
    double y = 2.0;

    //文章に表示
    printf("xとyの和は%fです。\n", x + y);
    return 0;
}
xとyの和は5.000000です。

はいできていますね!


ただここで一つの疑問が浮かび上がります。
整数(int)と実数(double)を計算させたらどうなるのか、、、。
ということで次の実験をしてみることにしました!

#include <stdio.h>

int main(void) {
    //実数xに3.0、整数yに2を代入
    double x = 3.0;
    int y = 2;

    //文章に表示
    printf("xとyの和は%fです。\n", x + y);
    return 0;
}

さあ、double型とint型の和はどうなるのか!
ドゥルドゥルドゥルドゥルドゥル、、、、、ジャン!

xとyの和は5.000000です。

正解は、実数で表示されるでした!!!
int型とdouble型で計算するとint型は勝手にdouble型に変換されてしまいます。
整数よりも実数の方が細かい表示ができるので空気を読んでそっちに合わせてくれるんですね。
ちなみにこの時に「%f」ではなく「%d」とやってしまうとエラーがおこります。
計算結果が実数になるんですもんね。


今回はこれで終わりまーす。 じゃーねー。