Strtod: Difference between revisions
Appearance
Content deleted Content added
Christian75 (talk | contribs) |
m Reverted edits by Christian75 (talk) to last version by 1exec1 |
||
Line 1: | Line 1: | ||
#redirect [[C miscellaneous operations#Function overview]] |
|||
{{lowercase|strtod}} |
|||
{{merge to|C string|discuss=Talk:C_standard_library#Pages_for_each_function_and_WP:NOTMANUAL|date=October 2011}} |
|||
'''strtod''' ('''''str'''ing '''to d'''ouble'') is a [[C (programming language)|C language]] function that converts a character [[text string|string]] to a [[double precision]] [[floating-point]] value<ref>{{cite book |
|||
| url=http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1124.pdf |
|||
| title=ISO/IEC 9899:1999 specification |
|||
| at=p. 308, § 7.20.1.3 |
|||
}}</ref>. It is defined as: |
|||
:<code>double strtod ( const char * str, char ** endptr );</code> |
|||
==Overview== |
|||
The strtod function parses the C string str interpreting its content as a floating point number and returns its value as a double. If endptr is not a null pointer, the function also sets the value pointed by endptr to point to the first character after the number. |
|||
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. A pointer to the rest of the string after the last valid character is stored in the object pointed by endptr. |
|||
A valid floating point number for strtod 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. |
|||
endptr |
|||
* 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. This parameter can also be a null pointer, in which case it is not used. |
|||
==Return value== |
|||
On success, the function returns the converted floating point number as a double value. |
|||
If no valid conversion could be performed, a zero value (0.0) is returned. |
|||
If the correct value is out of the range of representable values, a positive or negative HUGE_VAL is returned, and the global variable errno is set to ERANGE. |
|||
If the correct value would cause underflow, zero is returned and errno is set to ERANGE. |
|||
The strtod function is included in the [[stdlib.h]] header file of the ISO/IEC standard C [[library (computing)|library]]. |
|||
==See also== |
|||
{{col-begin}} |
|||
{{col-break|width=33%}} |
|||
*[[ASCII]] |
|||
*[[atoi]] |
|||
*[[atof]] |
|||
*[[C (programming language)]] |
|||
*[[C++]] |
|||
{{col-break}} |
|||
*[[Floating point]] |
|||
*[[Double precision]] |
|||
*[[Quadruple precision]] |
|||
*[[stdlib.h]] |
|||
*[[strtol]] |
|||
{{col-end}} |
|||
==References== |
|||
{{reflist}} |
|||
==External links== |
|||
* [http://en.cppreference.com/w/cpp/string/narrow/strtod C++ reference for <code>std::strtod</code>] |
|||
[[Category:C standard library]] |
|||
[[Category:stdlib.h]] |
|||
[[ru:Strtod]] |
Revision as of 22:39, 31 October 2011
Redirect to: