ecvt(3C) ecvt(3C)
ecvt, fcvt, gcvt, ecvt_r, fcvt_r, ecvtl, fcvtl, gcvtl, ecvtl_r, fcvtl_r -
convert floating-point number to string
#include <stdlib.h>
char *ecvt (double value<b>, int ndigit<b>, int *decpt<b>, int *sign<b>);
char *fcvt (double value<b>, int ndigit<b>, int *decpt<b>, int *sign<b>);
char *gcvt (double value<b>, int ndigit<b>, char *buf<b>);
char *ecvt_r (double value<b>, int ndigit<b>, int *decpt<b>, int *sign<b>,
char *buf<b>);
char *fcvt_r (double value<b>, int ndigit<b>, int *decpt<b>, int *sign<b>,
char *buf<b>);
char *ecvtl (long double value<b>, int ndigit<b>, int *decpt<b>, int *sign<b>);
char *fcvtl (long double value<b>, int ndigit<b>, int *decpt<b>, int *sign<b>);
char *gcvtl (long double value<b>, int ndigit<b>, char *buf<b>);
char *ecvtl_r (long double value<b>, int ndigit<b>, int *decpt<b>, int *sign<b>,
char *buf<b>);
char *fcvtl_r (long double value<b>, int ndigit<b>, int *decpt<b>, int *sign<b>,
char *buf<b>);
(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 nonzero,
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.
Page 1
ecvt(3C) ecvt(3C)
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.
printf(3S).
The values returned by ecvt, fcvt, ecvtl, and fcvtl point to a single
static data array whose content is overwritten by each call.
PPPPaaaaggggeeee 2222 [ Back ]
|