Как конвертировать float в String ?
- Войдите на сайт для отправки комментариев
Втр, 28/01/2014 - 17:13
Привет всем не как не получается конвертировать float в String , чтобы разобрать строку по знака, либо квадратики получаются, либо совсем другие цифры.
Подскажите пожалуйста как это сделать?
#include <EEPROM.h> float val_1 = 123456; float val_2 = 0; void setup() { Serial.begin(9600); // запись в ЕЕПРОМ byte *x = (byte *)&val_1; for(int i = 0; i < 4; i++) EEPROM.write(i, x[i]); // чтение из ЕЕПРОМ byte xx[4]; for(int i = 0; i < 4; i++) xx[i] = EEPROM.read(i); float *y = (float*)&xx; val_2 = y[0]; } void loop() { Serial.println(val_2, 5); delay(1000); }
Разбираем строку на части
const char* x="123456"; String asd; void setup() { Serial.begin(9600); } void loop() { String stringOne = x; // Разбираем строку на знаки и сохраняем в stringOne Serial.println(stringOne); asd = stringOne.substring(2,3); // Читаем из stringOne смотрим что между строками 2,3 и сохраняем в asd Serial.println(asd); delay(1000); }
а цель какая? от этого и способ зависит
самое ленивое - использовать float при инициализации String
Если вам на цифры разобрать, то нет необходимости это делать через текст
Он наверно хочет записать значение Float в EEPROM. Думаю надо в сторону копирования байтов памяти(оперативной памяти выделенной под данную переменную) смотреть - не уверен сколько байт выделено на хранение переменной - гдето от 4 до 8.
Мне значения с EEPROM. Нужно разобрать по знаком
У меня их не получается разобрать с EEPROM
Поскольку нужно перевести в String но многочисленные попытки были без успешны
bit, гуглите в сторону dtostrf (напиример: вот). Разбирайтесь. Удачи.
Вот таким способом получилось
modf - разбивает на целую и дробную части