Главная chevron_right Переменные и константы chevron_right Константы chevron_right Floating Point Constants

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.010
2.34E52.34 * 10^5234000
67e-1267.0 * 10^-120.000000000067

Оба варианта написания — с заглавной и строчной буквой — равнозначны и воспринимаются компилятором одинаково.

Практические замечания

  • Дробная часть отделяется точкой, а не запятой: пишите 3.14, а не 3,14. Запятая вызовет ошибку компиляции.
  • На большинстве AVR-плат Arduino (Uno, Nano, Mega) типы float и double имеют одинаковую разрядность — 32 бита, то есть около 6–7 значащих цифр. Не ожидайте точности, как на обычном компьютере.
  • Арифметика с плавающей точкой на AVR работает значительно медленнее целочисленной: если скорость критична, подумайте об умножении на степень 10 и работе с целыми числами.
  • Для задач, где потеря точности недопустима — денежные расчёты, счётчики импульсов, накопление ошибок в цикле — часто лучше использовать целые числа с масштабированием, например хранить миллиметры вместо метров.
  • Если результат вычислений выглядит неожиданно, выведите промежуточные значения через Serial.print() с указанием числа знаков после запятой, например Serial.println(val, 6) — это помогает увидеть, где накапливается погрешность.

Полезные материалы