Contents|Index|Previous|Next

ecvtbuf, fcvtbuf
[double or float to string]

    SYNOPSIS
    #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 representing 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.

COMPLIANCE
Neither function is ANSI C.

Supporting OS subroutines required: close, fstat, isatty, lseek, read, sbrk, write.