#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);
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.
Note: Most applications should use sprintf [see fprintf(3S)], strtod(3C) and strtold [see strtod(3C)] instead of these functions.