.TH FMTSTRTOD 3
.SH NAME
fmtstrtod, fmtcharstod \ - convert text to numbers
.SH SYNOPSIS
.B #include <utf.h>
.br
.B #include <fmt.h>
.PP
.PP
.B
double	fmtstrtod(char *nptr, char **rptr)
.PP
.B
double	fmtcharstod(int (*f)(void *), void *a)
.SH DESCRIPTION
.I Fmtstrtod
converts a string pointed to by
.I nptr
to floating point representation and, if
.I rptr
is not zero, sets
.I *rptr
to point to the input character immediately after the string converted.
.I Fmtstrtod
recognizes an optional string of tabs and spaces,
then an optional sign, then a string of digits optionally
containing a decimal point, then an optional 
.L e
or
.L E
followed by an optionally signed integer.
.PP
.PP
.I Fmtcharstod
interprets floating point numbers in the manner of
.IR atof ,
but gets successive characters by calling
.BR (*\fIf\fP)(a) .
The last call to
.I f
terminates the scan, so it must have returned a character that
is not a legal continuation of a number.
Therefore, it may be necessary to back up the input stream one character
after calling
.IR fmtcharstod .
.SH SOURCE
.B http://swtch.com/plan9port/unix
.SH SEE ALSO
.IR fscanf (3)
.SH DIAGNOSTICS
Zero is returned if the beginning of the input string is not interpretable
as a number; even in this case,
.I rptr
will be updated.
