A valid floating point number for 
atof using the 
"C" locale is formed by an optional sign character (
+ or 
-), followed by one of:
- A sequence of digits, optionally containing a decimal-point character (
.), optionally followed by an exponent part (an 
e or 
E character followed by an optional sign and a sequence of digits).
- A 
0x or 
0X prefix, then a sequence of hexadecimal digits (as in 
isxdigit) optionally containing a period which separates the whole and fractional number parts. Optionally followed by a power of 2 exponent (a 
p or 
P character followed by an optional sign and a sequence of hexadecimal digits).
- 
INF or 
INFINITY (ignoring case).
- 
NAN or 
NANsequence (ignoring case), where 
sequence is a sequence of characters, where each character is either an alphanumeric character (as in 
isalnum) or the underscore character (
_).