Next: __env_lock, Previous: gcvt, Up: Stdlib [Contents][Index]
ecvtbuf
, fcvtbuf
—double or float to stringSynopsis
#include <stdio.h> char *ecvtbuf(double val, int chars, int *decpt, int *sgn, char *buf); char *fcvtbuf(double val, int decimals, int *decpt, int *sgn, char *buf);
Description
ecvtbuf
and fcvtbuf
produce (null-terminated) strings
of digits representating the double
number val.
The only difference between ecvtbuf
and fcvtbuf
is the
interpretation of the second argument (chars or
decimals). For ecvtbuf
, 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 fcvtbuf
,
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 ecvtbuf
and fcvtbuf
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. For both functions, you supply a pointer buf to
an area of memory to hold the converted string.
Returns
Both functions return a pointer to buf, the string
containing a character representation of val.
Portability
Neither function is ANSI C.
Supporting OS subroutines required: close
, fstat
, isatty
,
lseek
, read
, sbrk
, write
.