説明
浮動小数点数(小数点以下の数値)のデータ型です。浮動小数点数は、整数よりも分解能が高いため、アナログ値や連続値の近似値としてよく使用されます。浮動小数点数は、3.4028235E+38のような大きな値から、-3.4028235E+38のような小さな値まであります。浮動小数点数は、32ビット(4バイト)の情報として格納されます。
構文
float var = val;
var: 変数名
val:その変数に割り当てた値
プログラム例
float myfloat; float sensorCalbrate = 1.117; int x; int y; float z; x = 1; y = x / 2; // y now contains 0, ints can't hold fractions z = (float)x / 2.0; // z now contains .5 (you have to use 2.0, not 2)
注意点と警告
浮動小数点を使って計算する場合は、小数点を追加する必要があり、そうしないとintとして扱われます。詳しくは「浮動小数点定数」のページをご覧ください。
floatデータ型の精度は10進数で6~7桁しかありません。これは、小数点以下の数字ではなく、総桁数を意味します。他のプラットフォームでは、doubleを使うことでより高い精度を得ることができますが(例:最大15桁)、Arduinoでは、doubleはfloatと同じサイズです。
浮動小数点数は正確ではないので、比較するとおかしな結果になることがあります。例えば、6.0 / 3.0が2.0にならないこともあります。このため、2つの数字の差の絶対値がある小さな数よりも小さいことを確認する必要があります。
浮動小数点演算から整数演算への変換では、切り捨てが発生します。
float x = 2.9; // A float type variable int y = x; // 2
変換時に四捨五入したい場合は、0.5を加える必要があります。
float x = 2.9; int y = x + 0.5; // 3
またはround()関数を使用します。
float x = 2.9; int y = round(x); // 3
また、浮動小数点演算は整数演算よりもはるかに遅いため、重要なタイミングで最高速度でループを実行しなければならないような場合には避けるべきです。プログラマーは速度を上げるために、わざわざ浮動小数点演算を整数演算に変換することもあります。