function
atof
<cstdlib>
double atof ( const char * str );
Convert string to double
Parses the C string
str interpreting its content as a floating point number and returns its value as a
double.
The function first discards as many whitespace characters as necessary until the first non-whitespace character is found. Then, starting from this character, takes as many characters as possible that are valid following a syntax resembling that of floating point literals, and interprets them as a numerical value. The rest of the string after the last valid character is ignored and has no effect on the behavior of this function.
A valid floating point number for
atof is formed by a succession of:
- An optional plus or minus sign
- A sequence of digits, optionally containing a decimal-point character
- An optional exponent part, which itself consists on an 'e' or 'E' character followed by an optional sign and a sequence of digits.
If the first sequence of non-whitespace characters in
str does not form a valid floating-point number as just defined, or if no such sequence exists because either
str is empty or contains only whitespace characters, no conversion is performed.
Parameters
- str
- C string beginning with the representation of a floating-point number.
Return Value
On success, the function returns the converted floating point number as a
double value.
If no valid conversion could be performed, the function returns zero (
0.0).
There is no standard specification on what happens when the converted value would be out of the range of representable values by a
double. See
strtod for a more robust cross-platform alternative when this is a possibility.
Example
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
/* atof example: sine calculator */
#include <stdio.h>
#include <stdlib.h>
#include <math.h>
int main ()
{
double n,m;
double pi=3.1415926535;
char szInput [256];
printf ( "Enter degrees: " );
gets ( szInput );
n = atof ( szInput );
m = sin (n*pi/180);
printf ( "The sine of %f degrees is %f\n" , n, m );
return 0;
}
|
Output:
Enter degrees: 45
The sine of 45.000000 degrees is 0.707101
|
See also
- strtod
- Convert string to double (function
)
- atoi
- Convert string to integer (function
)
- atol
- Convert string to long integer (function
)