diff options
-rw-r--r-- | libc/stdlib/Makefile | 2 | ||||
-rw-r--r-- | libc/stdlib/gcvt.c | 11 |
2 files changed, 12 insertions, 1 deletions
diff --git a/libc/stdlib/Makefile b/libc/stdlib/Makefile index cff8ada0a..c228cd9d6 100644 --- a/libc/stdlib/Makefile +++ b/libc/stdlib/Makefile @@ -38,7 +38,7 @@ MOBJ2=atexit.o exit.o CSRC = abort.c getenv.c mktemp.c qsort.c realpath.c abs.c bsearch.c \ mkstemp.c putenv.c rand.c random.c setenv.c system.c div.c ldiv.c \ - getpt.c ptsname.c grantpt.c unlockpt.c + getpt.c ptsname.c grantpt.c unlockpt.c gcvt.c ifeq ($(HAS_FLOATING_POINT),true) CSRC += strtod.c endif diff --git a/libc/stdlib/gcvt.c b/libc/stdlib/gcvt.c new file mode 100644 index 000000000..4ce5cf4ee --- /dev/null +++ b/libc/stdlib/gcvt.c @@ -0,0 +1,11 @@ + +#include <stdlib.h> + +#ifdef __UCLIBC_HAS_FLOATS__ +#define MAX_NDIGIT 17 +char * gcvt(double number, size_t ndigit, char* buf) +{ + sprintf(buf, "%.*g", (ndigit > MAX_NDIGIT)? MAX_NDIGIT : ndigit, number); + return buf; +} +#endif |