Czujniki dane po przecinku - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: Czujniki dane po przecinku (/watek-czujniki-dane-po-przecinku) |
Czujniki dane po przecinku - Jarewa0606 - 28-11-2018 Mam mały problem z danymi z czujników czemu te kody nie wyświetlają ich? gdzie popełniam bład? Kod: float h = dht.readHumidity(); bmp.readPresure jest w paskal dajmy na to 102030 ale dałem w float by podzielił przez 100 czemu w char nie ma dziesiętnych? zjada liczby i wyświetla po przecinku zera dwa . Z dht wyświetla po przecinku. RE: Czujniki dane po przecinku - kaczakat - 28-11-2018 Kompilator wie, że używanie float to nie jest dobry pomysł, więc proponuje użycie int - to się nazywa promocja do int. Dzieje się tak wtedy gdy w obliczeniach używasz typu całkowitego, to dopiero na końcu jest przypisywany wynik całkowity do floata. Jak chcesz go zmusić to spróbuj float p = ((float)bmp.readPressure()/100.0); . Jak i tak robisz z tego stringa to lepiej zrobić /100 i zapisać część całkowita, a potem dodać '.' i wynik z %100. RE: Czujniki dane po przecinku - Jarewa0606 - 28-11-2018 Wymuszenie działa. Nie bardzo wiem jak bym miał to zrobić " to lepiej zrobić /100 i zapisać część całkowita, a potem dodać '.' i wynik z %100." RE: Czujniki dane po przecinku - kaczakat - 29-11-2018 Użyj sprintf, rozwinę myśl jak ta strona zacznie działać, możliwości jest 1000++. https://pl.wikibooks.org/wiki/C/printf RE: Czujniki dane po przecinku - es2 - 03-12-2018 (28-11-2018, 19:50)Jarewa0606 napisał(a): Mam mały problem z danymi z czujników czemu te kody nie wyświetlają ich? gdzie popełniam bład? Zamiast Kod: float p = (bmp.readPressure()/100); Kod: float p = (float)(bmp.readPressure()/100); (28-11-2018, 23:52)Jarewa0606 napisał(a): Wymuszenie działa.sprintf( bufor, "%d,%03d", wynik/100, wynik%100); Ujemnych ciśnień mam nadzieję nie będziesz miał, bo zobaczysz np -5,-123 ale i na to jest sposób. RE: Czujniki dane po przecinku - Jarewa0606 - 03-12-2018 Kod: float p = (bmp.readPressure()/100); Kod: dtostrf(p, 4, 2, pressF); Tak szperałem szperałem i znalazłem że rozwiązanie wystarczyło przenieść dzielenie. Kod: dtostrf(p/100, 4, 2, pressF); Działa i tak na razie zostawiłem. Po prostu dzielenie w funkcji. |