root/src/system/libroot/posix/musl/stdlib/ecvt.c
#define _GNU_SOURCE
#include <stdlib.h>
#include <stdio.h>

char *ecvt(double x, int n, int *dp, int *sign)
{
        static char buf[16];
        char tmp[32];
        int i, j;

        if (n-1U > 15) n = 15;
        sprintf(tmp, "%.*e", n-1, x);
        i = *sign = (tmp[0]=='-');
        for (j=0; tmp[i]!='e'; j+=(tmp[i++]!='.'))
                buf[j] = tmp[i];
        buf[j] = 0;
        *dp = atoi(tmp+i+1)+1;

        return buf;
}