73 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			73 lines
		
	
	
		
			2.0 KiB
		
	
	
	
		
			C
		
	
	
	
| /*
 | |
| FUNCTION
 | |
|    <<atof>>, <<atoff>>---string to double or float
 | |
| 
 | |
| INDEX
 | |
| 	atof
 | |
| INDEX
 | |
| 	atoff
 | |
| 
 | |
| ANSI_SYNOPSIS
 | |
| 	#include <stdlib.h>
 | |
|         double atof(const char *<[s]>);
 | |
|         float atoff(const char *<[s]>);
 | |
| 
 | |
| TRAD_SYNOPSIS
 | |
| 	#include <stdlib.h>
 | |
|         double atof(<[s]>)
 | |
|         char *<[s]>;
 | |
| 
 | |
|         float atoff(<[s]>)
 | |
|         char *<[s]>;
 | |
| 
 | |
| DESCRIPTION
 | |
| <<atof>> converts the initial portion of a string to a <<double>>.
 | |
| <<atoff>> converts the initial portion of a string to a <<float>>.
 | |
| 
 | |
| The functions parse the character string <[s]>,
 | |
| locating a substring which can be converted to a floating-point
 | |
| value. The substring must match the format:
 | |
| . [+|-]<[digits]>[.][<[digits]>][(e|E)[+|-]<[digits]>]
 | |
| The substring converted is the longest initial
 | |
| fragment of <[s]> that has the expected format, beginning with
 | |
| the first non-whitespace character.  The substring
 | |
| is empty if <<str>> is empty, consists entirely
 | |
| of whitespace, or if the first non-whitespace character is
 | |
| something other than <<+>>, <<->>, <<.>>, or a digit.
 | |
| 
 | |
| <<atof(<[s]>)>> is implemented as <<strtod(<[s]>, NULL)>>.
 | |
| <<atoff(<[s]>)>> is implemented as <<strtof(<[s]>, NULL)>>.
 | |
| 
 | |
| RETURNS
 | |
| <<atof>> returns the converted substring value, if any, as a
 | |
| <<double>>; or <<0.0>>,  if no conversion could be performed.
 | |
| If the correct value is out of the range of representable values, plus
 | |
| or minus <<HUGE_VAL>> is returned, and <<ERANGE>> is stored in
 | |
| <<errno>>.
 | |
| If the correct value would cause underflow, <<0.0>> is returned
 | |
| and <<ERANGE>> is stored in <<errno>>.
 | |
| 
 | |
| <<atoff>> obeys the same rules as <<atof>>, except that it
 | |
| returns a <<float>>.
 | |
| 
 | |
| PORTABILITY
 | |
| <<atof>> is ANSI C. <<atof>>, <<atoi>>, and <<atol>> are subsumed by <<strod>>
 | |
| and <<strol>>, but are used extensively in existing code. These functions are
 | |
| less reliable, but may be faster if the argument is verified to be in a valid
 | |
| range.
 | |
| 
 | |
| Supporting OS subroutines required: <<close>>, <<fstat>>, <<isatty>>,
 | |
| <<lseek>>, <<read>>, <<sbrk>>, <<write>>.
 | |
| */
 | |
| 
 | |
| 
 | |
| #include <stdlib.h>
 | |
| #include <_ansi.h>
 | |
| 
 | |
| double
 | |
| _DEFUN (atof, (s),
 | |
| 	_CONST char *s)
 | |
| {
 | |
|   return strtod (s, NULL);
 | |
| }
 |