float

Описание

Тип данных для чисел с плавающей точкой — числа, имеющие десятичную точку. Числа с плавающей точкой часто используются для аппроксимации аналоговых и непрерывных значений, поскольку они имеют большее разрешение, чем целые числа. Числа с плавающей точкой могут быть размером до 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 теперь содержит 0, int не может хранить дроби
z = (float)x / 2.0; // z теперь содержит .5 (нужно использовать 2.0, а не 2)

Примечания и предупреждения

При выполнении математики с float необходимо добавлять десятичную точку, иначе оно будет рассматриваться как int. Подробности см. на странице констант с плавающей точкой.

Тип данных float имеет только 6-7 десятичных знаков точности. Это означает общее количество цифр, а не количество цифр справа от десятичной точки. В отличие от других платформ, где можно получить большую точность, используя double (например, до 15 цифр), на плате Arduino double имеет тот же размер, что и float.

Числа с плавающей точкой не точны и могут давать странные результаты при сравнении. Например, 9.0 / 0.3 может не быть в точности равным 30.0. Вместо этого следует проверять, что абсолютное значение разности между числами меньше некоторого малого числа.

Преобразование из числа с плавающей точкой в целочисленную математику приводит к усечению:

float x = 2.9; // Переменная типа float
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

Математика с плавающей точкой также намного медленнее, чем целочисленная математика при выполнении вычислений, поэтому её следует избегать, если, например, цикл должен работать на максимальной скорости для критической функции синхронизации. Программисты часто прилагают усилия для преобразования вычислений с плавающей точкой в целочисленную математику для увеличения скорости.

Смотрите также