Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Blame | Last modification | View Log | RSS feed

  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.