@node strtof
@subsection @code{strtof}
@findex strtof

POSIX specification:@* @url{https://pubs.opengroup.org/onlinepubs/9799919799/functions/strtof.html}

Gnulib module: strtof
@mindex strtof

Portability problems fixed by Gnulib:
@itemize
@item
This function is missing on some platforms:
NetBSD 3.0, OpenBSD 3.8, Minix 3.1.8, HP-UX 11, Solaris 9, MSVC 9, Android 4.4.

@item
This function returns the wrong end pointer for @samp{-0x} on some
platforms:
glibc 2.4, Mac OS X 10.5, FreeBSD 6.2.

@item
This function fails to parse @samp{NaN()} on some platforms:
glibc 2.5, FreeBSD 6.2.

@item
This function misparses @samp{nan(} on some platforms:
macOS 10.6.6.

@item
This function fails to set @code{errno} upon overflow on some platforms:
mingw 5.0.

@item
@c The term "underflow", as defined by ISO C23 § 7.12.1.(6), includes both
@c "gradual underflow" (result is a denormalized number) and "flush-to-zero
@c underflow" (result is zero).
This function fails to set @code{errno} upon underflow on some platforms:
Cygwin 2.9, mingw 5.0.
@end itemize

Portability problems not fixed by Gnulib:
@itemize
@item
This function returns +0.0 (not @minus{}0.0) for negative underflow on some
platforms:
glibc 2.7, mingw, MSVC 14.

@item
This function cannot distinguish between ``nan'' and ``-nan'' on some
platforms:
glibc 2.7, mingw, MSVC 14.

@item
This function fails to correctly parse very long strings on some
platforms:
Mac OS X 10.5, FreeBSD 6.2, NetBSD 5.0, Cygwin, mingw, MSVC 14.

@item
This function fails to set @code{errno} upon gradual underflow (resulting
in a denormalized number) on some platforms:
MSVC 14.

@item
The replacement function does not always return correctly rounded results.

@item
If no conversion could be performed, this function sets @code{errno}
to @code{EINVAL} on some platforms.  Portable programs should check
for no conversion by comparing @code{str} to @code{*endptr}, not by
inspecting @code{errno}.
@end itemize
