ecvt(3C) ecvt(3C) NAME ecvt, fcvt, gcvt, ecvt_r, fcvt_r, ecvtl, fcvtl, gcvtl, ecvtl_r, fcvtl_r - convert floating-point number to string SYNOPSIS #include <stdlib.h> char *ecvt (double value, int ndigit, int *decpt, int *sign); char *fcvt (double value, int ndigit, int *decpt, int *sign); char *gcvt (double value, int ndigit, char *buf); char *ecvt_r (double value, int ndigit, int *decpt, int *sign, char *buf); char *fcvt_r (double value, int ndigit, int *decpt, int *sign, char *buf); char *ecvtl (long double value, int ndigit, int *decpt, int *sign); char *fcvtl (long double value, int ndigit, int *decpt, int *sign); char *gcvtl (long double value, int ndigit, char *buf); char *ecvtl_r (long double value, int ndigit, int *decpt, int *sign, char *buf); char *fcvtl_r (long double value, int ndigit, int *decpt, int *sign, char *buf); DESCRIPTION (Note that the long double routines are only valid for the MIPSpro compilers.) Long double functions have been renamed to be compliant with the ANSI-C standard, however to be backward compatible, they may still be called with the double precision function name prefixed with a q. (Exceptions: ecvtl_r and fcvtl_r can be called with names qecvt_r and qfcvt_r, resp.) ecvt converts value to a null-terminated string of ndigit digits and returns a pointer thereto. The high-order digit is non-zero, unless the value is zero. The low-order digit is rounded. The position of the decimal point relative to the beginning of the string is stored indirectly through decpt (negative means to the left of the returned digits). The decimal point 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. fcvt is identical to ecvt, except that the correct digit has been rounded for printf %f output of the number of digits specified by ndigit. gcvt converts the value to a null-terminated string in the array pointed to by buf and returns buf. It attempts to produce ndigit significant digits in %f format if possible, otherwise %e format (scientific notation), ready for printing. A minus sign, if there is one, or a decimal point will be included as part of the returned string. Trailing zeros are suppressed. ecvtl, fcvtl, and gcvtl are the long double versions of functions ecvt, fcvt, and gcvt. ecvt_r and fcvt_r are reentrant versions of ecvt and fcvt. They are useful when multiple threads in a process wish to convert floating point numbers to strings. The conversion is produced in buf which should be at least 84 characters long. The return value is a pointer into buf which may or may not point at the beginning of buf. The feature test macro _SGI_REENTRANT_FUNCTIONS should be defined to make these two functions visible. ecvtl_r and fcvtl_r are the long double versions of functions ecvt_r and fcvt_r. Define _SGI_REENTRANT_FUNCTIONS to make these two functions visible. SEE ALSO printf(3S). NOTES The values returned by ecvt, fcvt, ecvtl, and fcvtl point to a single static data array whose content is overwritten by each call. Page 2