Standards / Extensions | C or C++ | Dependencies |
---|---|---|
C99 |
both | z/OS® V1R7 |
#define _ISOC99_SOURCE
#include <stdlib.h>
float strtof(const char *__restrict__ nptr, char **__restrict__ endptr);
strtof() converts a part of a character string, pointed to by nptr, to float. The parameter nptr points to a sequence of characters that can be interpreted as a numerical value of the type float.
The strtof() function breaks the string into three parts:
The function then attempts to convert the subject string into the floating-point number, and returns the result.
The expected form of the subject sequence is an optional plus or minus sign, then one of the following:
See the "scanf Family of Formatted Input Functions" for a description of special infinity and NaN sequences recognized by z/OS formatted input functions in IEEE Binary Floating-Point mode.
The pointer to the last string successfully converted is stored in the object pointed to by endptr, provided that endptr is not a NULL pointer. If the subject string is empty or it does not have the expected form, then no conversion is performed. The value of nptr is stored in the object pointed to by endptr.
If successful, strtof() returns the value of the floating-point number.
The float value is hexadecimal floating-point or IEEE Binary Floating-Point format depending on the floating-point mode of the thread invoking the strtof() function. This function uses __isBFP() to determine the floating-point mode of the invoking thread.
In an overflow, strtof() returns +/-HUGE_VALF. In an underflow, it returns 0. If no conversion is performed, strtof() returns 0. In both cases, errno is set to ERANGE, depending on the base of the value.