PR

数値型(int・float・double)の違いとは?整数型と浮動小数点型を分かりやすく解説

システム
スポンサーリンク

始めに

プログラムでは、数値を扱う場面が数多くあります。しかし、一口に数値といっても「整数」と「小数」では扱い方が異なり、それぞれに適したデータ型が用意されています。特に初学者が混乱しやすいのが、int・float・doubleの違いです。

「どれを使えばいいの?」「floatとdoubleは何が違うの?」「小数なのに計算結果が少しずれるのはなぜ?」と疑問に思った経験がある方も多いでしょう。この記事では、整数型と浮動小数点型の違いから、int・float・doubleの特徴、使い分けの考え方までを分かりやすく解説します。

数値型とは

数値型とは、その名のとおり数値を格納するためのデータ型です。
プログラムは値をメモリ上に保存して処理しますが、保存する値の種類によって適した形式があります。例えば、人の年齢や個数のように小数が不要な値もあれば、気温や身長、商品の価格のように小数を扱う値もあります。

そのため、多くのプログラミング言語では用途に応じて複数の数値型が用意されています。代表的なのが、整数を扱うintと、小数を扱うfloatdoubleです。

intは整数を扱うデータ型

int(integer)は整数専用のデータ型です。
例えば次のような値を扱う場合に使用します。

  • 年齢
  • 商品の在庫数
  • ページ番号
  • 得点
  • 人数

整数しか扱わないため、小数点以下の情報を保存する必要がありません。その分、計算も比較的高速で、メモリ効率にも優れています。もし小数を代入すると、多くのプログラミング言語ではエラーになったり、小数部分が切り捨てられたりします。整数しか必要ない場面では、intを選ぶのが基本です。

floatとdoubleは小数を扱うデータ型

小数を扱う場合は、浮動小数点型と呼ばれるfloatdoubleを使用します。
例えば次のような値です。

  • 気温
  • 身長・体重
  • センサーの測定値
  • 割合
  • 平均値

これらは小数点以下まで保持する必要があるため、整数型では正しく表現できません。そこで利用されるのが浮動小数点型です。ただし、floatとdoubleはどちらも小数を扱えるものの、大きな違いがあります。それが精度です。

floatとdoubleの違いは精度

floatとdoubleは、どちらも浮動小数点型ですが、保存できる情報量が異なります。
一般的には次のような違いがあります。

データ型主な用途精度
int整数小数は扱えない
float小数約7桁程度
double小数約15〜16桁程度

doubleはfloatより多くの情報を保持できるため、計算誤差が発生しにくくなります。そのため、現在では特別な理由がなければdoubleを使用するケースが多く見られます。
一方で、大量のデータを扱う画像処理やゲーム、組み込みシステムなどでは、メモリ使用量を抑える目的でfloatが選ばれることもあります。

なぜ小数の計算では誤差が発生するのか

「0.1 + 0.2 が 0.3 にならない」という話を聞いたことがあるかもしれません。これはプログラムのバグではなく、浮動小数点数の仕組みによるものです。コンピューターは内部で数値を2進数で表現しています。しかし、10進数では簡単に表せる0.1のような値でも、2進数では無限に続く小数になる場合があります。そのため、実際には近い値で近似して保存しており、ごくわずかな誤差が生じます。

普段の計算では問題になることは少ないものの、金額計算や会計システムなどでは、この誤差が大きな問題になる場合があります。そのため、言語によっては浮動小数点型ではなく、誤差が発生しにくい専用の数値型が用意されています。「小数だからfloatやdoubleを使えばよい」と考えるのではなく、用途に応じて適切な型を選ぶことが重要です。

どの数値型を選べばよいのか

数値型は、扱うデータの性質に合わせて選びます。
整数だけを扱うならint、小数が必要ならfloatまたはdoubleを使用します。そして、小数を扱う場合でも、高い精度が求められる計算ではdoubleを選ぶことが一般的です。

一方で、メモリ使用量や処理速度を優先する環境ではfloatが採用されることもあります。つまり、「どれが優れているか」ではなく、「用途に合っているか」が重要です。データ型を適切に選択することは、プログラムの品質や保守性にもつながります。

まとめ

int・float・doubleは、いずれも数値を扱うためのデータ型ですが、それぞれ役割が異なります。
intは整数専用で、小数を扱えません。floatとdoubleは小数を扱えますが、doubleの方が高い精度を持ち、多くのプログラムで標準的に利用されています。

また、浮動小数点型は内部表現の仕組みにより、わずかな計算誤差が発生することも理解しておく必要があります。数値型はプログラムの基本となる要素の一つです。「整数なのか」「小数なのか」「どの程度の精度が必要なのか」を意識して使い分けることで、より正確で読みやすいプログラムを書くことができるでしょう。

一覧へ【


コメント

タイトルとURLをコピーしました