【C言語入門】浮動小数点数(double・float)の使い方

double型float型って使ってますか?小数点を含む数値を扱う場合に使いますよね。この記事では、double型、float型について浮動小数点数型についてという基本的な内容から、

  • double型について
  • float型について

などそれぞれの型の詳しい内容についても解説していきます。今回はdouble型、float型について、使い方をわかりやすく解説します!

浮動小数点数型について

浮動小数点数型とは、小数を扱うデータ型のことです。浮動小数点数は符号部と固定長の仮数部と固定長の指数部を持ちます。数値の絶対値は以下のように定義されます。

仮数 × 基数の指数乗

基数は固定されているので、仮数と指数によって小数の絶対値が決まります。浮動小数点数には単精度浮動小数点数と倍精度浮動小数点数があり、単精度浮動小数点数がfloat型、倍精度浮動小数点数がdouble型になります。

float型のサイズは4バイトつまり32ビットで、符号部に1ビット、仮数部に23ビット、指数部に8ビットを使用しています。

double型のサイズは8バイトつまり64ビットで、符号部に1ビット、仮数部に52ビット、指数部に11ビット使用しています。指数部で表現できる範囲を超える場合があります。

指数の最大値を超える場合はオーバーフロー、絶対値の最小より小さい場合はアンダーフローといいます。範囲を超えて意図しない値で扱われることのないように注意しましょう。double型およびfloat型の最大値や最小値については後ほど詳しく説明します。

double型について

double型の変数は次のようにして定義します。

double型の変数および初期化:

また、代入する数値は指数表記で記述することもできます。

数値の指数表記:

double型のサイズは8バイトで、絶対値の最大値は1.797693e+308、最小値は2.225074e-308となります。printf関数などを使って出力表示する際の変換指定子は「lf」(long float)になります。

また、指数表示で出力表示する際の変換指定子は「le」、最適な形式で出力表示する際の変換指定子は「lg」になります。それではサンプルコードで確認していきましょう。

実行結果:

このサンプルコードではdouble型の変数「pi」と「micro」を定義し、変換指定子「lf」、「le」、「lg」を使って出力表示しています。また、ヘッダーファイル「float.h」で定義された定数「DBL_MIN」、「DBL_MAX」を使ってdouble型の数値の絶対値の最小値、最大値を出力表示しています。

float型について

float型の変数は次のようにして定義します。

float型の変数および初期化:

float型の変数に数値を代入する場合は数値の後にf(F)を付けてfloat型の代入であることを明示します。また、代入する数値は指数表記で記述することもできます。

数値の指数表記:

float型のサイズは4バイトで、絶対値の最大値は3.402823e+38、最小値は1.175494e-38となります。

printf関数などを使って出力表示する際の変換指定子は「f」になります。また、指数表示で出力表示する際の変換指定子は「e」、最適な形式で出力表示する際の変換指定子は「g」になります。それではサンプルコードで確認していきましょう。

実行結果:

このサンプルコードではfloat型の変数「pi」と「micro」を定義し、変換指定子「f」、「e」、「g」を使って出力表示しています。また、ヘッダーファイル「float.h」で定義された定数「FLT_MIN」、「FLT_MAX」を使ってfloat型の数値の絶対値の最小値、最大値を出力表示しています。

まとめ

ここでは、double型、float型について説明しました。

double型、float型などの浮動小数点数型は符号および仮数と指数を使って表しますが、指数の最大値や絶対値の最小値を超えて意図しない値で扱われることのないように注意しましょう。

使いこなすことができるように、この記事を何度も参考にして下さいね!

LINEで送る
Pocket

最短でエンジニアを目指すなら侍エンジニア塾

cta_under_bnr

侍エンジニア塾は業界で初めてマンツーマンレッスンを始めたプログラミングスクールです。これまでの指導実績は16,000名を超え、未経験から数多くのエンジニアを輩出しています。

あなたの目的に合わせてカリキュラムを作成し、現役エンジニア講師が専属であなたの学習をサポートするため効率よく学習を進めることができますよ。

無理な勧誘などは一切ありません。まずは無料体験レッスンを受講ください。

無料体験レッスンの詳細はこちら

書いた人

長野 透

長野 透

熊本在住のフリープログラマ兼ライターです。C/C++/C#、Java、Python、HTML/CSS、PHPを使ってプログラミングをしています。専門は画像処理で最近は機械学習、ディープラーニングにはまっています。幅広くやってきた経験を活かしてポイントをわかりやすくお伝えしようと思います。
お問合せはこちらでも受け付けています。
[email protected]

おすすめコンテンツ

あなたにぴったりなプログラミング学習プランを無料で診断!

プログラミング学習の効率を劇的に上げる学習メソッドを解説