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