move msghdr and cmsghdr out of bits/socket.h
[musl.git] / src / stdlib / fcvt.c
blobf90928fe160de88fa783d10bd0f10b44ac833950
1 #define _GNU_SOURCE
2 #include <stdlib.h>
3 #include <stdio.h>
4 #include <string.h>
6 char *fcvt(double x, int n, int *dp, int *sign)
8 char tmp[1500];
9 int i, lz;
11 if (n > 1400U) n = 1400;
12 sprintf(tmp, "%.*f", n, x);
13 i = (tmp[0] == '-');
14 if (tmp[i] == '0') lz = strspn(tmp+i+2, "0");
15 else lz = -(int)strcspn(tmp+i, ".");
17 if (n<=lz) {
18 *sign = i;
19 *dp = 1;
20 if (n>14U) n = 14;
21 return "000000000000000"+14-n;
24 return ecvt(x, n-lz, dp, sign);