ecvt(3C)


ecvt, ecvtl, fcvt, fcvtl, gcvt, gcvtl -- convert floating-point number to string

Synopsis

   #include <stdlib.h>
   

char *ecvt(double value, int ndigit, int *decpt, int *sign);

char *ecvtl(long double value, int ndigit, int *decpt, int *sign);

char *fcvt(double value, int ndigit, int *decpt, int *sign);

char *fcvtl(long double value, int ndigit, int *decpt, int *sign);

char *gcvt(double value, int ndigit, char *buf);

char *gcvtl(long double value, int ndigit, char *buf);

Description

ecvt and ecvtl convert value to a null-terminated string of ndigit digits and return 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 and fcvtl are identical to ecvt and ecvtl, except that the correct digit has been rounded for printf %f output of the number of digits specified by ndigit [see fprintf(3S)].

gcvt and gcvtl convert the value to a null-terminated string in the array pointed to by buf and return buf. They attempt 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.

References

fprintf(3S)

Notices

The values returned by ecvt, ecvtl, fcvt, and fcvtl point to a single static data array whose content is overwritten by each call.

Note: Most applications should use sprintf [see fprintf(3S)], strtod(3C) and strtold [see strtod(3C)] instead of these functions.


© 2004 The SCO Group, Inc. All rights reserved.
UnixWare 7 Release 7.1.4 - 25 April 2004