Skocz do zawartości

Lolin32 i problem z zaokrąglaniem liczb


Pomocna odpowiedź

Napisano (edytowany)

Mam moduł BME280 i wyświetla mi wilgotność oraz ciśnienie z dokładnością do czwartego miejsca po przecinku. Nie wiem jak zrobić żeby wyświetlał mi z dokładnością do drugiego miejsca po przecinku (nie chodzi mi o wyświetlenie na LCD czy serial tylko te dane są wysyłane na serwer Thingspeak i potrzebuje w programie zaokrąglić te dane do drugiego miejsca po przecinku). Poniżej jak wygląda odczyt BME280.

float temp(NAN), hum(NAN), pres(NAN);
   BME280::TempUnit tempUnit(BME280::TempUnit_Celsius);
   BME280::PresUnit presUnit(BME280::PresUnit_hPa);
   bme.read(pres, temp, hum, tempUnit, presUnit);

 

Edytowano przez Wiktor2019

Pytanie czy chcesz nadal dane mieć jako float czy jako string? Bo jeśli jako float, to można próbować zaokrąglać, ale trzeba pamiętać, że float jest zawsze pewnym przybliżeniem. Np. nie da się zapisać dziesiętnego 0,1 jako skończonej wartości binarnej. Dlatego pisząc, że chciałbyś mieć "do drugiego miejsca po przecinku" sugeruje, że chciałbyś zamienić float na jego tekstową reprezentację w formacie xxx,yy. Od tej odpowiedzi zależy dalsza część tego wątku. Pomijam, że na obie odpowiedzi w necie jest 10 tysięcy wątków 😉

  • Lubię! 1
45 minut temu, Marooned napisał:

Pomijam, że na obie odpowiedzi w necie jest 10 tysięcy wątków 😉

Niestety nie znalazłem interesującej mnie odpowiedzi na moje pytanie (może źle szukałem).

Chcę zmienić liczbę np.

float wilgotnosc;
wilgotnosc = 85,4852;

na liczbę 

wilgonosc = 85,48

 

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...