Hello! Given the following code:
char latit[10] = {"4041.2358"}; //Degrees = 40, Minutes = 41, Seconds = 23.58
Serial.print("latit = ");
Serial.println(latit);
float flatit = atof(latit);
Serial.print("flatit = ");
Serial.println(flatit, 6);
flatit /= 100.00;
Serial.print("flatit = ");
Serial.println(flatit, 6);
float flatitdegrees = (int)flatit; //isolate degrees
float temp = (flatit - (int)flatit) * 100;
float fminutes = (int)(temp); //isolate minutes
float fseconds = (temp - fminutes) * 100; //isolate seconds
Serial.print("Degrees = ");
Serial.println(flatitdegrees);
Serial.print("Minutes = ");
Serial.println(fminutes,2);
Serial.print("Seconds = ");
Serial.println(fseconds, 2);
I get an output that looks like this:
latit = 4041.2358
flatit = 4041.235839
flatit = 40.412357
Degrees = 40.00
Minutes = 41.00
Seconds = 23.57
Can someone help me to understand what is going on with those last significant digits?