atof returning a different floating value

It is particularly important to recognize that comparing two floating point numbers for equality is almost always a bad idea.

Something like

double piD = 3.14;

if(piD == 3.14)
{
   Serial.print("piD is equal to pi");
}

is unlikely to work because when piD is stored it may be stored as 3.139999 or something that is very close to but not exactly equal to 3.14.