blob: 4fa61b7b288dcc121d2696281033dfb8146d2018 [file] [log] [blame]
#define _GNU_SOURCE
#include <stdio.h>
#include <stdlib.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;
}