ecvt
Converts a floating-point number into a character string
#include <stdlib.h> char *ecvt ( double value, int ndigits, int *dec, int *sign);
The ecvt function returns a pointer to a static buffer containing the converted string of digits. Note, both ecvt and fcvt use the same static buffer, except if you are using CLIB V 4.11 or above.
The parameter ndigits specifies the number of significant digits desired. The converted number is rounded to ndigits of precision.
The character string contains only digits and is terminated by a NULL character. The integer pointed to by dec is filled in with a value indicating the position of the decimal point relative to the start of the string of digits. A zero or negative value indicates that the decimal point lies to the left of the first digit. The integer pointed to by sign contains 0 if the number is positive, and nonzero if the number is negative.
#include <stdio.h> #include <stdlib.h> main() { char str; int dec, sign; str = ecvt( 123.456789, 6, &dec, &sign ); printf( "str=%s, dec=%d, sign=%d\n", str,dec, sign ); }
produces the following:
str=123457, dec=3, sign=0