1 /* 2 FUNCTION 3 <<atof>>, <<atoff>>---string to double or float 4 5 INDEX 6 atof 7 INDEX 8 atoff 9 10 ANSI_SYNOPSIS 11 #include <stdlib.h> 12 double atof(const char *<[s]>); 13 float atoff(const char *<[s]>); 14 15 TRAD_SYNOPSIS 16 #include <stdlib.h> 17 double atof(<[s]>) 18 char *<[s]>; 19 20 float atoff(<[s]>) 21 char *<[s]>; 22 23 DESCRIPTION 24 <<atof>> converts the initial portion of a string to a <<double>>. 25 <<atoff>> converts the initial portion of a string to a <<float>>. 26 27 The functions parse the character string <[s]>, 28 locating a substring which can be converted to a floating-point 29 value. The substring must match the format: 30 . [+|-]<[digits]>[.][<[digits]>][(e|E)[+|-]<[digits]>] 31 The substring converted is the longest initial 32 fragment of <[s]> that has the expected format, beginning with 33 the first non-whitespace character. The substring 34 is empty if <<str>> is empty, consists entirely 35 of whitespace, or if the first non-whitespace character is 36 something other than <<+>>, <<->>, <<.>>, or a digit. 37 38 <<atof(<[s]>)>> is implemented as <<strtod(<[s]>, NULL)>>. 39 <<atoff(<[s]>)>> is implemented as <<strtof(<[s]>, NULL)>>. 40 41 RETURNS 42 <<atof>> returns the converted substring value, if any, as a 43 <<double>>; or <<0.0>>, if no conversion could be performed. 44 If the correct value is out of the range of representable values, plus 45 or minus <<HUGE_VAL>> is returned, and <<ERANGE>> is stored in 46 <<errno>>. 47 If the correct value would cause underflow, <<0.0>> is returned 48 and <<ERANGE>> is stored in <<errno>>. 49 50 <<atoff>> obeys the same rules as <<atof>>, except that it 51 returns a <<float>>. 52 53 PORTABILITY 54 <<atof>> is ANSI C. <<atof>>, <<atoi>>, and <<atol>> are subsumed by <<strod>> 55 and <<strol>>, but are used extensively in existing code. These functions are 56 less reliable, but may be faster if the argument is verified to be in a valid 57 range. 58 59 Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>, 60 <<lseek>>, <<read>>, <<sbrk>>, <<write>>. 61 */ 62 63 64 #include <stdlib.h> 65 #include <_ansi.h> 66 67 double 68 _DEFUN (atof, (s), 69 _CONST char *s) 70 { 71 return strtod (s, NULL); 72 } 73