[Previous] [Contents] [Index] [Next]

Caution: This version of this document is no longer maintained. For the latest documentation, see http://www.qnx.com/developers/docs.

strtod()

Convert a string into a double

Synopsis:

#include <stdlib.h>

double strtod( const char *ptr, 
               char **endptr );

Arguments:

ptr
A pointer to the string to parse.
endptr
If this argument isn't NULL, the function stores in it a pointer to the first unrecognized character found in the string.

Library:

libc

Use the -l c option to qcc to link against this library. This library is usually included automatically.

Description:

The strtod() function converts the string pointed to by ptr to double representation. The function recognizes a string containing the following:

The conversion ends at the first unrecognized character. If endptr isn't NULL, a pointer to the unrecognized character is stored in the object endptr points to.

Returns:

The converted value. If the correct value would cause overflow, plus or minus HUGE_VAL is returned according to the sign, and errno is set to ERANGE. If the correct value would cause underflow, then zero is returned, and errno is set to ERANGE.

This function returns zero when the input string can't be converted. If an error occurs, errno indicates the error detected.

Examples:

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

int main( void )
  {
    double pi;

    pi = strtod( "3.141592653589793", NULL );
    printf( "pi=%17.15f\n",pi );
    return EXIT_SUCCESS;
  }

Classification:

ANSI, POSIX 1003.1

Safety:
Cancellation point No
Interrupt handler No
Signal handler Yes
Thread Yes

See also:

atof(), errno


[Previous] [Contents] [Index] [Next]