2012-08-22 22 views
6

Yüzdüğü zaman bölmelerde kayıp oluşuyor Arduino'mda bir dize ile float arasında bir gps okumaya çalışıyorum. Dize, tüm rakamları iyi işliyor, ancak bir kayan noktaya ayırdığımda, rakamlarımın 4'ünü kaybediyorum. İşte benim kodudur: aynı şeyler sonuçlanır hala ondalık noktası olan bir ipe .toFloat kullanmaC++ (Arduino)

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

, ondalık noktasından sonra sadece iki sayı.

Örnek numaraları:

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

cevap

5

Tamam Yanılmışım, varsayılan yazdırma işlevi yalnızca iki basamaklı hassasiyet kullanır. Bu yüzden ifadeye kaç basamak istediğimi eklemeliydim.

print(lat, 20); 

print(lat) 

sadece iki verir seri monitörde kesinlik 20 haneden verecek.