### DESCRIPTION

These conversion functions convert the initial portion of the string pointed to by * nptr* to

.Vt double ,

.Vt float , and

.Vt "long double" representation, respectively. The expected form of the string is an optional plus (‘‘+’’) or minus sign (‘‘-’’) followed by either:

- a decimal significand consisting of a sequence of decimal digits optionally containing a decimal-point character, or
- a hexadecimal significand consisting of a ‘‘0X’’ or ‘‘0x’’ followed by a sequence of hexadecimal digits optionally containing a decimal-point character.

In both cases, the significand may be optionally followed by an exponent. An exponent consists of an ‘‘E’’ or ‘‘e’’ (for decimal constants) or a ‘‘P’’ or ‘‘p’’ (for hexadecimal constants), followed by an optional plus or minus sign, followed by a sequence of decimal digits. For decimal constants, the exponent indicates the power of 10 by which the significand should be scaled. For hexadecimal constants, the scaling is instead done by powers of 2.

Alternatively, if the portion of the string following the optional plus or minus sign begins with ‘‘INFINITY’’ or ‘‘NAN’’, ignoring case, it is interpreted as an infinity or a quiet NaN, respectively.