浮動小数点数の取り扱い
メニューを表示するにはスワイプしてください
数値型は整数だけではありません。浮動小数点数も存在します。C++では、これらを格納するためにfloat型とdouble型を使用します。本章ではfloat型について説明し、次章でdouble型およびその違いについて扱います。以下はfloat型の使用方法の構文です。
float.h
1float num = 0.45;
浮動小数点数がメモリにどのように格納されるかを簡単に見てみましょう。
float型はint型と同様に4バイトのメモリを使用します。しかし、このような数値を2進数に変換するのははるかに複雑です。
こちらは、float num = 13.45 がどのように格納されるかの例です。
ここで何が起こっているのかを完全に理解できなくても問題ありません。重要な点は、float の表現が3つの部分に分かれていることです。
-
符号 コンポーネントは、プラス(
+)またはマイナス(-)記号で表されます。これは数値が正か負かを示します。 -
指数 コンポーネントは、数値が表現できる範囲を決定します。指数が大きいほど、表現できる値の範囲が広がります。
floatデータ型では、指数は 1 バイト(8 ビット)のメモリを占めます。 -
仮数 コンポーネントは、
floatの精度を決定します。すべての数値がメモリ上で正確に表現できるわけではなく、数値の精度は仮数の長さによって定義されます。floatデータ型では、仮数の長さは 23 ビットです。
その結果、float は7 桁の10進精度と、1.2e-38 から 3.4e+38 の範囲(負の数と正の数の両方に適用)を持つ。したがって、ほとんどの場合、範囲は問題にならないが、精度が問題になることがある。
フィードバックありがとうございます!
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください