summaryrefslogtreecommitdiffstats
path: root/man3p/wcstod.3p
diff options
context:
space:
mode:
Diffstat (limited to 'man3p/wcstod.3p')
-rw-r--r--man3p/wcstod.3p212
1 files changed, 212 insertions, 0 deletions
diff --git a/man3p/wcstod.3p b/man3p/wcstod.3p
new file mode 100644
index 000000000..eeaf50269
--- /dev/null
+++ b/man3p/wcstod.3p
@@ -0,0 +1,212 @@
+.\" Copyright (c) 2001-2003 The Open Group, All Rights Reserved
+.TH "WCSTOD" P 2003 "IEEE/The Open Group" "POSIX Programmer's Manual"
+.\" wcstod
+.SH NAME
+wcstod, wcstof, wcstold \- convert a wide-character string to a double-precision
+number
+.SH SYNOPSIS
+.LP
+\fB#include <wchar.h>
+.br
+.sp
+double wcstod(const wchar_t *restrict\fP \fInptr\fP\fB, wchar_t **restrict\fP
+\fIendptr\fP\fB);
+.br
+float wcstof(const wchar_t *restrict\fP \fInptr\fP\fB, wchar_t **restrict\fP
+\fIendptr\fP\fB);
+.br
+long double wcstold(const wchar_t *restrict\fP \fInptr\fP\fB,
+.br
+\ \ \ \ \ \ wchar_t **restrict\fP \fIendptr\fP\fB);
+.br
+\fP
+.SH DESCRIPTION
+.LP
+These functions shall convert the initial portion of the wide-character
+string pointed to by \fInptr\fP to \fBdouble\fP,
+\fBfloat\fP, and \fBlong double\fP representation, respectively. First,
+they shall decompose the input wide-character string into
+three parts:
+.IP " 1." 4
+An initial, possibly empty, sequence of white-space wide-character
+codes (as specified by \fIiswspace\fP())
+.LP
+.IP " 2." 4
+A subject sequence interpreted as a floating-point constant or representing
+infinity or NaN
+.LP
+.IP " 3." 4
+A final wide-character string of one or more unrecognized wide-character
+codes, including the terminating null wide-character
+code of the input wide-character string
+.LP
+.LP
+Then they shall attempt to convert the subject sequence to a floating-point
+number, and return the result.
+.LP
+The expected form of the subject sequence is an optional plus or minus
+sign, then one of the following:
+.IP " *" 3
+A non-empty sequence of decimal digits optionally containing a radix
+character, then an optional exponent part
+.LP
+.IP " *" 3
+A 0x or 0X, then a non-empty sequence of hexadecimal digits optionally
+containing a radix character, then an optional binary
+exponent part
+.LP
+.IP " *" 3
+One of INF or INFINITY, or any other wide string equivalent except
+for case
+.LP
+.IP " *" 3
+One of NAN or NAN(\fIn-wchar-sequence_opt\fP), or any other wide string
+ignoring case in the NAN part,
+where:
+.sp
+.RS
+.nf
+
+\fBn-wchar-sequence:
+ digit
+ nondigit
+ n-wchar-sequence digit
+ n-wchar-sequence nondigit
+\fP
+.fi
+.RE
+.LP
+.LP
+The subject sequence is defined as the longest initial subsequence
+of the input wide string, starting with the first
+non-white-space wide character, that is of the expected form. The
+subject sequence contains no wide characters if the input wide
+string is not of the expected form.
+.LP
+If the subject sequence has the expected form for a floating-point
+number, the sequence of wide characters starting with the
+first digit or the radix character (whichever occurs first) shall
+be interpreted as a floating constant according to the rules of
+the C language, except that the radix character shall be used in place
+of a period, and that if neither an exponent part nor a
+radix character appears in a decimal floating-point number, or if
+a binary exponent part does not appear in a hexadecimal
+floating-point number, an exponent part of the appropriate type with
+value zero shall be assumed to follow the last digit in the
+string. If the subject sequence begins with a minus sign, the sequence
+shall be interpreted as negated. A wide-character sequence
+INF or INFINITY shall be interpreted as an infinity, if representable
+in the return type, else as if it were a floating constant
+that is too large for the range of the return type. A wide-character
+sequence NAN or
+NAN(\fIn-wchar-sequence_opt\fP) shall be interpreted as a quiet NaN,
+if supported in the return type,
+else as if it were a subject sequence part that does not have the
+expected form; the meaning of the \fIn\fP-wchar sequences is
+implementation-defined. A pointer to the final wide string shall be
+stored in the object pointed to by \fIendptr\fP, provided that
+\fIendptr\fP is not a null pointer.
+.LP
+If the subject sequence has the hexadecimal form and FLT_RADIX is
+a power of 2, the conversion shall be rounded in an
+implementation-defined manner.
+.LP
+The
+radix character shall be as defined in the program's locale (category
+\fILC_NUMERIC ).\fP In the POSIX locale, or in a locale
+where the radix character is not defined, the radix character shall
+default to a period ( \fB'.'\fP ).
+.LP
+In other than the C \ or POSIX locales, other
+implementation-defined subject sequences may be accepted.
+.LP
+If the subject sequence is empty or does not have the expected form,
+no conversion shall be performed; the value of \fInptr\fP
+shall be stored in the object pointed to by \fIendptr\fP, provided
+that \fIendptr\fP is not a null pointer.
+.LP
+The
+\fIwcstod\fP() function shall not change the setting of \fIerrno\fP
+if successful.
+.LP
+Since 0 is returned on error and is also a valid return on success,
+an application wishing to check for error situations should
+set \fIerrno\fP to 0, then call \fIwcstod\fP(), \fIwcstof\fP(), or
+\fIwcstold\fP(), then check \fIerrno\fP.
+.SH RETURN VALUE
+.LP
+Upon successful completion, these functions shall return the converted
+value. If no conversion could be performed, 0 shall be
+returned \ and \fIerrno\fP may be set to [EINVAL].
+.LP
+If the correct value is outside the range of representable values,
+\(+-HUGE_VAL, \(+-HUGE_VALF, or \(+-HUGE_VALL
+shall be returned (according to the sign of the value), and \fIerrno\fP
+shall be set to [ERANGE].
+.LP
+If the correct value would cause underflow, a value whose magnitude
+is no greater than the smallest normalized positive number
+in the return type shall be returned and \fIerrno\fP set to [ERANGE].
+.SH ERRORS
+.LP
+The \fIwcstod\fP() function shall fail if:
+.TP 7
+.B ERANGE
+The value to be returned would cause overflow or underflow.
+.sp
+.LP
+The \fIwcstod\fP() function may fail if:
+.TP 7
+.B EINVAL
+No
+conversion could be performed.
+.sp
+.LP
+\fIThe following sections are informative.\fP
+.SH EXAMPLES
+.LP
+None.
+.SH APPLICATION USAGE
+.LP
+If the subject sequence has the hexadecimal form and FLT_RADIX is
+not a power of 2, and the result is not exactly representable,
+the result should be one of the two numbers in the appropriate internal
+format that are adjacent to the hexadecimal floating source
+value, with the extra stipulation that the error should have a correct
+sign for the current rounding direction.
+.LP
+If the subject sequence has the decimal form and at most DECIMAL_DIG
+(defined in \fI<float.h>\fP) significant digits, the result should
+be correctly rounded. If the subject
+sequence \fID\fP has the decimal form and more than DECIMAL_DIG significant
+digits, consider the two bounding, adjacent decimal
+strings \fIL\fP and \fIU\fP, both having DECIMAL_DIG significant digits,
+such that the values of \fIL\fP, \fID\fP, and \fIU\fP
+satisfy \fB"L <= D <= U"\fP . The result should be one of the (equal
+or adjacent) values that would be obtained by
+correctly rounding \fIL\fP and \fIU\fP according to the current rounding
+direction, with the extra stipulation that the error
+with respect to \fID\fP should have a correct sign for the current
+rounding direction.
+.SH RATIONALE
+.LP
+None.
+.SH FUTURE DIRECTIONS
+.LP
+None.
+.SH SEE ALSO
+.LP
+\fIiswspace\fP() , \fIlocaleconv\fP() , \fIscanf\fP() , \fIsetlocale\fP()
+, \fIwcstol\fP() , the
+Base Definitions volume of IEEE\ Std\ 1003.1-2001, Chapter 7, Locale,
+\fI<float.h>\fP, \fI<wchar.h>\fP
+.SH COPYRIGHT
+Portions of this text are reprinted and reproduced in electronic form
+from IEEE Std 1003.1, 2003 Edition, Standard for Information Technology
+-- Portable Operating System Interface (POSIX), The Open Group Base
+Specifications Issue 6, Copyright (C) 2001-2003 by the Institute of
+Electrical and Electronics Engineers, Inc and The Open Group. In the
+event of any discrepancy between this version and the original IEEE and
+The Open Group Standard, the original IEEE and The Open Group Standard
+is the referee document. The original Standard can be obtained online at
+http://www.opengroup.org/unix/online.html .