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. Neither the name of the University nor the names of its contributors 17.\" may be used to endorse or promote products derived from this software 18.\" without specific prior written permission. 19.\" 20.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 21.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 22.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 23.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 24.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 25.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 26.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 27.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 28.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 29.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 30.\" SUCH DAMAGE. 31.\" 32.\" $OpenBSD: strtod.3,v 1.8 2003/06/02 20:18:38 millert Exp $ 33.\" 34.Dd $Mdocdate: February 9 2014 $ 35.Dt STRTOD 3 36.Os 37.Sh NAME 38.Nm strtod , strtof 39.Nd convert 40.Tn ASCII 41string to floating point 42.Sh SYNOPSIS 43.Fd #include <stdlib.h> 44.Ft double 45.Fn strtod "const char *nptr" "char **endptr" 46.Ft float 47.Fn strtof "const char *nptr" "char **endptr" 48.Sh DESCRIPTION 49These conversion functions convert the initial portion of the string pointed 50to by 51.Fa nptr 52to 53.Li double 54or 55.Li float 56representation, respectively. 57.Pp 58The expected form of the string is an optional plus 59.Pq Ql + 60or minus sign 61.Pq Ql - 62followed by a sequence of digits optionally containing 63a decimal-point character, optionally followed by an exponent. 64An exponent consists of an 65.Sq E 66or 67.Sq e , 68followed by an optional plus or minus sign, followed by a sequence of digits. 69.Pp 70Leading whitespace characters in the string (as defined by the 71.Xr isspace 3 72function) are skipped. 73.Sh RETURN VALUES 74The 75.Fn strtod 76and 77.Fn strtof 78functions return the converted value, if any. 79.Pp 80If 81.Fa endptr 82is not 83.Dv NULL , 84a pointer to the character after the last character used 85in the conversion is stored in the location referenced by 86.Fa endptr . 87.Pp 88If no conversion is performed, zero is returned and the value of 89.Fa nptr 90is stored in the location referenced by 91.Fa endptr . 92.Pp 93If the correct value would cause overflow, plus or minus 94.Dv HUGE_VAL 95is returned (according to the sign of the value), and 96.Er ERANGE 97is stored in 98.Va errno . 99If the correct value would cause underflow, zero is returned and 100.Er ERANGE 101is stored in 102.Va errno . 103.Sh ERRORS 104.Bl -tag -width Er 105.It Bq Er ERANGE 106Overflow or underflow occurred. 107.El 108.Sh SEE ALSO 109.Xr atof 3 , 110.Xr atoi 3 , 111.Xr atol 3 , 112.Xr strtol 3 , 113.Xr strtoul 3 114.Sh STANDARDS 115The 116.Fn strtod 117function conforms to 118.St -ansiC . 119.Sh HISTORY 120The 121.Fn strtof 122function was added to 123.Mx 124in 2013. 125 126