• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 #define _GNU_SOURCE
2 #include <stdlib.h>
3 #include <stdio.h>
4 
ecvt(double x,int n,int * dp,int * sign)5 char *ecvt(double x, int n, int *dp, int *sign)
6 {
7 	static char buf[16];
8 	char tmp[32];
9 	int i, j;
10 
11 	if (n-1U > 15) n = 15;
12 	sprintf(tmp, "%.*e", n-1, x);
13 	i = *sign = (tmp[0]=='-');
14 	for (j=0; tmp[i]!='e'; j+=(tmp[i++]!='.'))
15 		buf[j] = tmp[i];
16 	buf[j] = 0;
17 	*dp = atoi(tmp+i+1)+1;
18 
19 	return buf;
20 }
21