ecvt
, ecvtf
, fcvt
, fcvtf
—double or float to stringSynopsis
#include <stdlib.h> char *ecvt(double val, int chars, int *decpt, int *sgn); char *ecvtf(float val, int chars, int *decpt, int *sgn); char *fcvt(double val, int decimals, int *decpt, int *sgn); char *fcvtf(float val, int decimals, int *decpt, int *sgn);
Description
ecvt
and fcvt
produce (null-terminated) strings of digits
representating the double
number val.
ecvtf
and fcvtf
produce the corresponding character
representations of float
numbers.
(The stdlib
functions ecvtbuf
and fcvtbuf
are reentrant
versions of ecvt
and fcvt
.)
The only difference between ecvt
and fcvt
is the
interpretation of the second argument (chars or decimals).
For ecvt
, the second argument chars specifies the total number
of characters to write (which is also the number of significant digits
in the formatted string, since these two functions write only digits).
For fcvt
, the second argument decimals specifies the number of
characters to write after the decimal point; all digits for the integer
part of val are always included.
Since ecvt
and fcvt
write only digits in the output string,
they record the location of the decimal point in *decpt
, and
the sign of the number in *sgn
. After formatting a number,
*decpt
contains the number of digits to the left of the
decimal point. *sgn
contains 0
if the number is positive,
and 1
if it is negative.
Returns
All four functions return a pointer to the new string containing a
character representation of val.
Portability
None of these functions are ANSI C.
Supporting OS subroutines required: close
, fstat
, isatty
,
lseek
, read
, sbrk
, write
.