Перевод температуры Float в String
- Войдите на сайт для отправки комментариев
Чт, 18/08/2016 - 18:09
Здравствуйте!
Дано: температура с датчика DHT22 в формате float.
Надо: вывести ее красиво в переменную формата String. Формат "26.5", "8.3", "-5.2", то есть без плюса, только минус, округление до десятых.
Сложность у меня возникает именно из-за переменной.
Из-за какой переменной?
Про переменную не понял, а про преобразование, берите функцию dtostrf и преобразовывайте на здоровье.
Мозги уже кипят. (
cannot convert 'String' to 'char*' for argument '4' to 'char* dtostrf(double, signed char, unsigned char, char*)'
Важно получить значение именно в s, чтобы потом с ним работать.
О, господи, ну опишите эту s как char s[16] скажем. Или Вам именно String нужен? Ну, не знаю, ну запихайте это в массив char'ов а потом присвойте его String'у
Оказалось, все намного проще.
Оказалось, все намного проще.
Ну, да сначала использовать деление, которого вообще-то в процессоре нет и реализовано программно, а потом ещё и остаток. Уж хоть сделайте их одной функцией :)
А вообще, нормальные люди просто лезут в библиотеку и выкорчёвывают оттуда float к чертям, чтобы и духу не было. Чтобы библиотека сразу int взвращала с нужным множителем вообще никак не прикасаясь к float.
Вот смотрите, Вам float нафиг не нужен, но Вы сначала переводите выичсления во float (в библиотеке), а потом, обратно в int. В результате цепляете к своему коду библиотеку работы с плавающей точкой - примерно 1,5 килобайта. Оно Вам надо? Память девать некуда? :)))
и ещё с десяток вариантов...