Chapter Contents

Previous

Next
strtod

strtod



Convert a String to Double

Portability: ISO/ANSI C conforming, UNIX compatible


SYNOPSIS
DESCRIPTION
RETURN VALUE
DIAGNOSTICS
EXAMPLE
RELATED FUNCTIONS
SEE ALSO


SYNOPSIS

#include <stdlib.h>

double strtod(const char *str, char **end);


DESCRIPTION

strtod expects a floating-point number in C syntax, with these specifications:

If the end value is not NULL , *end is modified to address the first character of the string that is not consistent with the floating-point syntax above. However, if no initial segment of the string can be interpreted as a floating-point number, str is assigned to *end .


RETURN VALUE

strtod returns the double value represented by the character string up to the first unrecognized character. If no initial segment of the string can be interpreted as a floating-point number, 0.0 is returned.


DIAGNOSTICS

If the floating-point value is outside the range of valid 370 floating-point numbers, errno is set to ERANGE. In this case, ± HUGE_VAL (defined in <math.h> ) is returned if the correct value is too large, or 0.0 if the correct value is too close to 0.


EXAMPLE

#include <stdlib.h>
#include <ctype.h>
#include <stdio.h>

main()
{
   double number;
   char *input, *stopchar;
   char string[20];

   puts("Enter a string to be converted to double:");
   input = gets(string);

      /* Skip space characters.            */
   while(isspace(*input)) ++input;

      /* Convert from character to double. */
   number = strtod(input, &stopchar);
      /* Determine if string is valid.     */
   if (stopchar == input)
      printf("Invalid float number: %s\n", input);

      /* Check for characters afterwards.  */
   else if (*stopchar && !isspace(*stopchar))

   printf("Extra characters after value ignored: %s\n", stopchar);
   printf("The entered string was converted to: %g\n", number);
}


RELATED FUNCTIONS

strtol


SEE ALSO


Chapter Contents

Previous

Next

Top of Page

Copyright © 2001 by SAS Institute Inc., Cary, NC, USA. All rights reserved.