ecvt(3C)
NAME
ecvt(), ecvt_r(), fcvt,() fcvt_r(), gcvt() − convert floating-point number to string
SYNOPSIS
#include <stdlib.h>
char *ecvt(double value, int ndigit, int *decpt, int *sign);
int ecvt_r(
double value,
int ndigit,
int *decpt,
int *sign,
char *buffer,
int buflen);
char *fcvt(double value, int ndigit, int *decpt, int *sign);
int fcvt_r(
double value,
int ndigit,
int *decpt,
int *sign,
char *buffer,
int buflen);
char *gcvt(double value, int ndigit, char *buf);
DESCRIPTION
ecvt() Converts value to a null-terminated string of ndigit digits and returns a pointer to the string. The high-order digit is non-zero, unless the value is zero. The low-order digit is rounded. The position of the radix character relative to the beginning of the string is stored indirectly through decpt (negative means to the left of the returned digits). The radix character is not included in the returned string. If the sign of the result is negative, the word pointed to by sign is non-zero, otherwise it is zero.
One of three non-digit characters strings could be returned if the converted value is out of range. A -- or ++ is returned if the value is larger than the exponent can contain, and is negative, or positive, respectively. The third string is returned if the number is illegal, a zero divide for example. The result value is Not A Number (NAN) and would return a ? character.
ecvt_r() Identical to ecvt(), except that the result string is passed back in the supplied buffer. If the buffer is of insufficient length, -1 is returned. If the operation is successful, 0 is returned.
fcvt() Identical to ecvt(), except that the correct digit has been rounded for printf %f (FORTRAN F-format) output of the number of digits specified by ndigit.
fcvt_r() Identical to fcvt(), except that the result string is passed back in the supplied buffer. If the buffer is of insufficient length, -1 is returned. If the operation is successful, 0 is returned.
gcvt() Converts the value to a null-terminated string in the array pointed to by buf and returns buf. It produces ndigit significant digits in FORTRAN F-format if possible, or E-format otherwise. A minus sign, if required, and a radix character is included in the returned string. Trailing zeros are suppressed. The radix character is determined by the currently loaded NLS environment (see setlocale(3C)). If setlocale() has not been called successfully, the default NLS environment, "C", is used (see lang(5)). The default environment specifies a period (.) as the radix character.
EXTERNAL INFLUENCES
Locale
The LC_NUMERIC category determines the value of the radix character within the current NLS environment.
WARNINGS
The values returned by ecvt() and fcvt() point to a single static data array whose content is overwritten by each call. Thus, these routines are unsafe in multi-thread applications. ecvt_r() and fcvt_r() are MT-Safe and should be used instead.
AUTHOR
ecvt() and fcvt() were developed by AT&T. gcvt() was developed by AT&T and HP.
SEE ALSO
setlocale(3C), printf(3S), hpnls(5), lang(5).
STANDARDS CONFORMANCE
ecvt(): XPG2
fcvt(): XPG2
gcvt(): XPG2
Hewlett-Packard Company — HP-UX Release 10.20: July 1996