C言語 入門 %fとfloatを使った小数の計算

C Language
C言語でfloatを使いたい人

C言語でfloatを使いたいな…小数の計算ができるみたいだけど、どうやって使うんだろう🤔

この悩みを解決します。

過去に小数を使わない計算方法を解説したので、まだ見ていない方はそちらを参考にしてください。下の記事を読んだ前提で話を進めていきます。

»C言語 入門 計算方法と変数の初期化!変数宣言する場所は?

この記事を書いている自分は情報系大学生で、三ヶ月ほどでC言語の基礎を完璧に理解しました。勉強中に分からないことが多く、一日中プログラミングしていたこともあります。

今では、ブログでC言語について解説しています。

今回はそんな経験をもとに解説していこうかと。

当サイトでは、覚えるべきところを全てまとめているので、画面を撮影して何度も読み返すことをおすすめします。

それでは、解説していきます!

小数の計算に必要なもの:float,%f

小数の計算に必要なものは以下の2つですね。

小数の計算に必要なもの

float

%f

一応言っておくと、これらとは別のものを利用しても小数の計算が可能です。詳しくは、下の2つをご覧ください。

では、先ほど紹介した「float」と「%f」を解説していきますね。

floatとは

floatとは、小数の計算をするためのデータ型です。(「int」で変数宣言された変数に小数を保存することはできません。)

データ型については、下の記事で解説しました。

%fとは

%fとは、小数を出力できる変換書式(変換指定子)です。

%.(小数点以下の桁数)f

とすることで小数点以下の桁数を指定することができます。(小さい数字は四捨五入されます)

floatと%fを組み合わせたプログラム

前回のプログラムをちょいアレンジしてみます。

#include<stdio.h>
int main()
{
  float tasu;
  float hiku;
  float kake;
  float waru;

  tasu = 5.3 + 2.8;
  hiku = 5.3 - 2.8;
  kake = 5.3 * 2.8;
  waru = 5.3 / 2.8;

  printf("5.3+2.8=%.1f¥n",tasu);
  printf("5.3-2.8=%.1f¥n",hiku);
  printf("5.3×2.8=%.1f¥n",kake);
  printf("5.3÷2.8=%.1f¥n",waru);
}

こんな感じでコードを書けますよね。ではプログラムを実行していきましょう。

%fの使い方を工夫して、計算結果を見やすく

先ほどの出力結果は、掛け算のところだけ小数点の位置がずれていますよね。見にくいので、工夫しましょう。

こういう場合、桁数が最も大きい計算結果に合わせましょう。

全ての「%f」を

%(小数点以上の桁数+小数点以下の桁数+1).f

とすることで、小数点の位置を統一することができます。

※「小数点以上の桁数」と「小数点以下の桁数」には、最も大きい桁数のものがはいります。

今回の場合だと「14.8」が最も大きいので、

2+1+1=4

より、

小数点以上の桁数+小数点以下の桁数+1=4

ですね。

%4.1f

となることが分かるでしょうか?

#include<stdio.h>
int main()
{
  float tasu;
  float hiku;
  float kake;
  float waru;

  tasu = 5.3 + 2.8;
  hiku = 5.3 - 2.8;
  kake = 5.3 * 2.8;
  waru = 5.3 / 2.8;

  printf("5.3+2.8=%4.1f¥n",tasu);
  printf("5.3-2.8=%4.1f¥n",hiku);
  printf("5.3×2.8=%4.1f¥n",kake);
  printf("5.3÷2.8=%4.1f¥n",waru);
}

では、プログラムを実行していきましょう。

14.8の表示は全く変わっていませんね。しかし、他のところは全て直前に一文字分だけ空いて、見栄えが良くなりました。

このようにして出力結果を見やすくすることができます。

まとめ:%fとfloatを使った小数の計算

重要なところをまとめますね。

%fで見栄えを良くする方法

%(小数点以上の桁数+小数点以下の桁数+1).(小数点以下の桁数)f

細かいところですが、重要なので覚えましょう。そして、常に使うように心がけましょう。

自分でもプログラムをつくって、実行すると力が付きます。

今回は以上です!

次は、複合代入演算子を勉強してみましょう。

ではでは~👋