Floating Point Constants
Константы с плавающей точкой — это дробные числа вроде 1.6e-19 или 2.34E5, которые компилятор воспринимает как float или double прямо в тексте скетча.
Полная статья
Описание
Когда вы пишете в коде дробное число — например 0.005, 10.0 или 2.34E5 — это и есть константа с плавающей точкой. Компилятор видит такое значение на этапе сборки и подставляет его как число типа float или double в зависимости от контекста и платформы.
Подобные константы делают код понятнее: вместо магических чисел в формулах сразу виден физический смысл — коэффициент пересчёта, поправочный множитель, порог срабатывания датчика или физическая постоянная.
Пример кода
float n = 0.005; // 0.005 — константа с плавающей запятой
Научная запись
Для очень больших или очень маленьких чисел удобно использовать научную нотацию — через E или e. Например, 2.34E5 означает 234000, а 1.6e-19 — заряд электрона в кулонах.
| Константа | Значение | То же самое в обычной записи |
|---|---|---|
10.0 | 10 | |
2.34E5 | 2.34 * 10^5 | 234000 |
67e-12 | 67.0 * 10^-12 | 0.000000000067 |
Оба варианта написания — с заглавной и строчной буквой — равнозначны и воспринимаются компилятором одинаково.
Практические замечания
- Дробная часть отделяется точкой, а не запятой: пишите
3.14, а не3,14. Запятая вызовет ошибку компиляции. - На большинстве AVR-плат Arduino (Uno, Nano, Mega) типы
floatиdoubleимеют одинаковую разрядность — 32 бита, то есть около 6–7 значащих цифр. Не ожидайте точности, как на обычном компьютере. - Арифметика с плавающей точкой на AVR работает значительно медленнее целочисленной: если скорость критична, подумайте об умножении на степень 10 и работе с целыми числами.
- Для задач, где потеря точности недопустима — денежные расчёты, счётчики импульсов, накопление ошибок в цикле — часто лучше использовать целые числа с масштабированием, например хранить миллиметры вместо метров.
- Если результат вычислений выглядит неожиданно, выведите промежуточные значения через
Serial.print()с указанием числа знаков после запятой, напримерSerial.println(val, 6)— это помогает увидеть, где накапливается погрешность.