1 /* Copyright (C) 1998 DJ Delorie, see COPYING.DJ for details */
8 _gcvt (double value
, int ndigits
, char *buf
)
12 sprintf (buf
, "%-#.*g", ndigits
, value
);
14 /* It seems they expect us to return .XXXX instead of 0.XXXX */
17 if (*p
== '0' && p
[1] == '.')
18 memmove (p
, p
+ 1, strlen (p
+ 1) + 1);
20 /* They want Xe-YY, not X.e-YY, and XXXX instead of XXXX. */
21 p
= strchr (buf
, 'e');
24 p
= buf
+ strlen (buf
);
25 /* They don't want trailing zeroes. */
26 while (p
[-1] == '0' && p
> buf
+ 2)
29 if (p
> buf
&& p
[-1] == '.')
30 memmove (p
- 1, p
, strlen (p
) + 1);