toFloat()
Метод toFloat() превращает строку String в число float, останавливая разбор на первом нецифровом символе — например, "123fish" даст 123.0.
Полная статья
Описание
Метод toFloat() позволяет превратить текстовое представление числа в значение типа float. Это удобно, когда данные приходят в виде строки — например, из Serial-порта, EEPROM или текстового файла на SD-карте — и их нужно использовать в математических вычислениях.
Строка должна начинаться с цифры или знака числа. Разбор продолжается до первого символа, который не может быть частью числа. Так, строка "123fish" даст 123.00 — всё, что идёт после "123", просто игнорируется.
Важно помнить об ограниченной точности: тип float на Arduino хранит лишь 6–7 значащих цифр. Строка "123.456" будет представлена приближённо и может превратиться в 123.46. Очень длинные числовые строки окажутся усечены.
Синтаксис
myString.toFloat()
Параметры
myString: переменная типа String, содержащая текстовое представление числа.
Возвращает
Число типа float, полученное из строки. Если строка не начинается с цифры и преобразование невозможно, метод возвращает 0.0.
Где применяется
- Чтение числовых данных из Serial Monitor: пользователь вводит значение, скетч принимает его как
Stringи конвертирует вfloatдля расчётов. - Разбор ответов от GPS-модулей или других UART-устройств, которые передают координаты и скорости в текстовом виде.
- Загрузка настроек из файла на SD-карте, где параметры хранятся как строки.
- Преобразование данных из текстовых полей дисплея с сенсорным вводом.
Практические замечания
- Если строка начинается с пробела или буквы, результат будет
0.0— это не ошибка выполнения, а тихое «нулевое» значение. Перед вызовомtoFloat()полезно проверить, что первый символ строки является цифрой. - Разделитель дробной части — точка (
.), а не запятая. Строка"3,14"вернёт3.0, потому что запятая не является допустимым символом числа. - Точность
floatсоставляет около 6–7 значащих цифр. Для финансовых расчётов или задач с высокой точностью этого недостаточно — используйте целочисленную арифметику или специализированные библиотеки. - Результат
0.0неотличим от ситуации, когда строка действительно содержала"0". Если важно различать эти случаи, заранее проверяйте содержимое строки. - После получения
floatможно сразу использовать его в арифметике, передавать в функции управления моторами, ПИД-регуляторы и другие вычислительные блоки скетча.