]> git.ipfire.org Git - thirdparty/man-pages.git/blame - man3/strtod.3
Maintenance scripts
[thirdparty/man-pages.git] / man3 / strtod.3
CommitLineData
fea681da
MK
1.\" Copyright (c) 1990, 1991 The Regents of the University of California.
2.\" All rights reserved.
3.\"
4.\" This code is derived from software contributed to Berkeley by
5.\" the American National Standards Committee X3, on Information
6.\" Processing Systems.
7.\"
8.\" Redistribution and use in source and binary forms, with or without
9.\" modification, are permitted provided that the following conditions
10.\" are met:
11.\" 1. Redistributions of source code must retain the above copyright
12.\" notice, this list of conditions and the following disclaimer.
13.\" 2. Redistributions in binary form must reproduce the above copyright
14.\" notice, this list of conditions and the following disclaimer in the
15.\" documentation and/or other materials provided with the distribution.
16.\" 3. All advertising materials mentioning features or use of this software
17.\" must display the following acknowledgement:
18.\" This product includes software developed by the University of
19.\" California, Berkeley and its contributors.
20.\" 4. Neither the name of the University nor the names of its contributors
21.\" may be used to endorse or promote products derived from this software
22.\" without specific prior written permission.
23.\"
24.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
25.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
26.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
27.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
28.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
29.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
30.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
31.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
32.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
33.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
34.\" SUCH DAMAGE.
35.\"
36.\" @(#)strtod.3 5.3 (Berkeley) 6/29/91
37.\"
38.\" Modified Sun Aug 21 17:16:22 1994 by Rik Faith (faith@cs.unc.edu)
39.\" Modified Sat May 04 19:34:31 MET DST 1996 by Michael Haardt
40.\" (michael@cantor.informatik.rwth-aachen.de)
41.\" Added strof, strold, aeb, 2001-06-07
42.\"
43.TH STRTOD 3 2001-06-07 "Linux" "Library functions"
44.SH NAME
45strtod, strtof, strtold \- convert ASCII string to floating point number
46.SH SYNOPSIS
47.B #include <stdlib.h>
48.sp
49.BI "double strtod(const char *" nptr ", char **" endptr );
016c9c3d
MK
50.sp
51.BR "#define _XOPEN_SOURCE=600" " /* or #define _ISOC99_SOURCE */"
fea681da 52.br
016c9c3d
MK
53.B #include <stdlib.h>
54.sp
fea681da
MK
55.BI "float strtof(const char *" nptr ", char **" endptr );
56.br
57.BI "long double strtold(const char *" nptr ", char **" endptr );
58.SH DESCRIPTION
59The
60.BR strtod ,
61.BR strtof ,
62and
63.B strtold
64functions convert the initial portion of the string pointed to by
65.I nptr
66to
67.BR double ,
68.BR float ,
69and
70.B long double
71representation, respectively.
72
73The expected form of the (initial portion of the) string is
74optional leading white space as recognized by \fIis\%space\fP(3),
8c383102 75an optional plus (``+'') or minus sign (``\-'') and then either
fea681da
MK
76(i) a decimal number, or (ii) a hexadecimal number,
77or (iii) an infinity, or (iv) a NAN (not-a-number).
78.LP
79A
80.I "decimal number"
81consists of a nonempty sequence of decimal digits
82possibly containing a radix character (decimal point, locale dependent,
83usually ``.''), optionally followed by a decimal exponent. A
84decimal exponent consists of an ``E'' or ``e'', followed by an
85optional plus or minus sign, followed by a non-empty sequence of
86decimal digits, and indicates multiplication by a power of 10.
87.LP
88A
89.I "hexadecimal number"
90consists of a ``0x'' or ``0X'' followed by a nonempty sequence of
91hexadecimal digits possibly containing a radix character,
92optionally followed by a binary exponent. A binary exponent
93consists of a ``P'' or ``p'', followed by an optional
94plus or minus sign, followed by a non-empty sequence of
95decimal digits, and indicates multiplication by a power of 2.
96At least one of radix character and binary exponent must be present.
97.LP
98An
99.I infinity
100is either ``INF'' or ``INFINITY'', disregarding case.
101.LP
102A
103.I NAN
104is ``NAN'' (disregarding case) optionally followed by `(',
105a sequence of characters, followed by ')'.
106The character string specifies in an implementation-dependent
107way the type of NAN.
108
109.SH "RETURN VALUE"
110These functions return the converted value, if any.
111
112If
113.I endptr
114is not
115.BR NULL ,
116a pointer to the character after the last character used in the conversion
117is stored in the location referenced by
118.IR endptr .
119
120If no conversion is performed, zero is returned and the value of
121.I nptr
122is stored in the location referenced by
123.IR endptr .
124
125If the correct value would cause overflow, plus or minus
126.B HUGE_VAL
127.RB ( HUGE_VALF ,
128.BR HUGE_VALL )
129is returned (according to the sign of the value), and
130.B ERANGE
131is stored in
132.IR errno .
133If the correct value would cause underflow, zero is
134returned and
135.B ERANGE
136is stored in
137.IR errno .
138.SH ERRORS
139.TP
140.B ERANGE
141Overflow or underflow occurred.
142.SH "CONFORMING TO"
143ANSI C describes
144.BR strtod ,
145C99
146describes the other two functions.
147.SH "SEE ALSO"
148.BR atof (3),
149.BR atoi (3),
150.BR atol (3),
151.BR strtol (3),
152.BR strtoul (3)