Sto cercando di ottenere una lettura gps da una stringa a un float sul mio Arduino. La stringa ha tutte le maniglie tutte le cifre bene, ma quando la divido per ottenere un float, perdo 4 delle mie cifre. Qui è il mio codice:Perdita di cifre durante la divisione di float C++ (Arduino)
gpsStrings[0].replace(".", "");
lat = gpsRawData[0].toFloat();
lat = lat/1000000.0;
Utilizzando .toFloat su una stringa che ha ancora il punto decimale in esso provoca la stessa cosa, solo due numeri dopo la virgola.
numeri Esempio:
42427898 :: 42.43 - what happens
42427898 :: 42.427898 - what I want to happen
Ottengo lo stesso risultato. Su Arduino i doppi non sono più precisi dei galleggianti. Possono contenere lo stesso numero di cifre. http://arduino.cc/en/Reference/Double – Steven
Vedo, È piuttosto spiacevole .. Grazie per il suggerimento – ZnArK