C library function - strtod()



The C library function double strtod(const char *str, char **endptr) converts the string pointed to by the argument str to a floating-point number (type double). If endptr is not NULL, a pointer to the character after the last character used in the conversion is stored in the location referenced by endptr.


Following is the declaration for strtod() function.

double strtod(const char *str, char **endptr)


  • str -- This is the value to be converted to a string.

  • endptr -- This is the reference to an already allocated object of type char*, whose value is set by the function to the next character in str after the numerical value.

Return Value

This function returns the converted floating point number as a double value, else zero value (0.0) is returned.


The following example shows the usage of strtod() function.

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

int main()
   char str[30] = "20.30300 This is test";
   char *ptr;
   double ret;

   ret = strtod(str, &ptr);
   printf("The number(double) is %lf\n", ret);
   printf("String part is |%s|", ptr);


Let us compile and run the above program that will produce the following result:

The number(double) is 20.303000
String part is | This is test|