float отдать через get на сервер
- Войдите на сайт для отправки комментариев
есть мега, на ней вагон датчиков.
опрашиваются датчики сразу в float, вот так
float h = dht.readHumidity(); float t = dht.readTemperature();
после того как опросили все датчики, пытаюсь полученные данные затолкать в одну строку и отправить серверу.
sprintf(buf, "GET /meteo.php?temp=%01.2f&code=%1d.%d&code=%2d.%d&code=%3d.%d&code=%4d.%d&code=%5d.%d HTTP/1.0", (int)h,(nti)t,(int)tdpa,(int)Pa,(int)Pa2,(int)val );
код был взят готовый и пилится по мере гугла и своих знаний в php (немного общей логики есть)
но вот с этой строкой у меня проблемы. я в ней получаю какую-то кашу. понимаю что виновата конструкция
(int)t
и подобные.
отсюда вопрос, есть ли какое-то средство в полпинка изменить эти данные в такой вид, чтобы можно было бы с ними работать?
как я вижу ситуацию, надо из float сделать нечто типа string или char. не потеряв при этом хотя бы 2 числа после запятой. вот я и не знаю как сделать такое преобразование.
можете помочь?)
читайте сразу в int.
сразу в int - нет ни одного знака после запятой.
а они нужны
а, это из библиотеки, сорри, не заметил.
если, допустим надо два знака после запятой, то умножте float на 100, при получении делим.
Может виновата конструкция
(nti)t
?пошел другим путем.
сделал вот так отдачу на сервер:
все заработало без всяких преобразований и танцев с бубном
char* str =ftoa(t);