float отдать через get на сервер

fedottt
Offline
Зарегистрирован: 30.05.2013

есть мега, на ней вагон датчиков. 

опрашиваются датчики сразу в 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 числа после запятой. вот я и не знаю как сделать такое преобразование. 

можете помочь?)

__Alexander
Offline
Зарегистрирован: 24.10.2012

читайте сразу в int.

fedottt
Offline
Зарегистрирован: 30.05.2013

сразу в int - нет ни одного знака после запятой. 

а они нужны

__Alexander
Offline
Зарегистрирован: 24.10.2012

а, это из библиотеки, сорри, не заметил.

если, допустим надо два знака после запятой, то умножте float на 100, при получении делим.

trembo
trembo аватар
Offline
Зарегистрирован: 08.04.2011

Может виновата конструкция

(nti)t?

 

fedottt
Offline
Зарегистрирован: 30.05.2013

пошел другим путем. 

сделал вот так отдачу на сервер:

 client.connect(server,80);
    client.print("GET /meteo.php?");   
    client.print("t=");     
    client.print(t);
    client.print("&h=");     
    client.print(h);
    client.print("&tdpa=");     
    client.print(tdpa);
    client.print("&pa=");     
    client.print(Pa);
    client.print("&pa2=");     
    client.print(Pa2);
    client.print("&val=");     
    client.print(val);
    
    client.println(" HTTP/1.0");   
    client.println("Host: server.com");

все заработало без всяких преобразований и танцев с бубном

Geronimo
Offline
Зарегистрирован: 06.05.2013

char* str =ftoa(t);