
Convert a Char Array into a Double in C
To convert a character array (string) into a double in C, you can use the strtod
function from the stdlib.h
library. This function converts a string representation of a floating-point number to a double
. Here’s how you can use it:
#include <stdio.h>
#include <stdlib.h>
int main() {
char str[] = "3.14159"; // Example character array (string)
double result;
// Convert the string to a double using strtod
result = strtod(str, NULL);
printf("Converted double value: %f\n", result);
return 0;
}
In the example above, the strtod
function takes two arguments: the character array (string) to convert and a pointer to a character pointer that will be set to the first invalid character after the conversion. Passing NULL
as the second argument means you’re not interested in the remaining characters.
Make sure that the character array you’re converting contains a valid representation of a floating-point number. If the conversion is unsuccessful due to an invalid input format, the result
will still be modified, but its value might be unpredictable.
Also, remember that the strtod
function handles the conversion based on the current locale settings, which might affect how decimal points and thousands separators are interpreted. If you need more control over parsing, consider using sscanf
with a format specifier.