2012-08-22 8 views
6

Próbuję uzyskać odczyt gps z napisu na float na moim Arduino. Łańcuch obsługuje wszystkie cyfry, ale kiedy je podzielę, aby uzyskać zmienną, tracę 4 cyfry. Tu jest mój kodu:Utrata cyfr podczas dzielenia pływaków C++ (Arduino)

gpsStrings[0].replace(".", ""); 
lat = gpsRawData[0].toFloat(); 
lat = lat/1000000.0; 

Korzystanie .toFloat na sznurku, który nadal ma punkt dziesiętny w Skutkuje to samo, tylko dwa numery po przecinku.

Przykładowe numery:

42427898 :: 42.43 - what happens 
42427898 :: 42.427898 - what I want to happen 

Odpowiedz

5

W porządku Nie miałem racji, domyślna funkcja drukowania używa tylko dwóch cyfr precyzji. Musiałem więc dodać liczbę cyfr, które chciałem do wyciągu.

print(lat, 20); 

da 20 cyfr precyzji na monitorze szeregowego gdzie

print(lat) 

daje dwie tylko.

Powiązane problemy