1 /* Copyright (C) 1998 DJ Delorie, see COPYING.DJ for details */
6 _gcvt (double value
, int ndigits
, char *buf
)
10 sprintf (buf
, "%-#.*g", ndigits
, value
);
12 /* It seems they expect us to return .XXXX instead of 0.XXXX */
15 if (*p
== '0' && p
[1] == '.')
16 memmove (p
, p
+ 1, strlen (p
+ 1) + 1);
18 /* They want Xe-YY, not X.e-YY, and XXXX instead of XXXX. */
19 p
= strchr (buf
, 'e');
22 p
= buf
+ strlen (buf
);
23 /* They don't want trailing zeroes. */
24 while (p
[-1] == '0' && p
> buf
+ 2)
27 if (p
> buf
&& p
[-1] == '.')
28 memmove (p
- 1, p
, strlen (p
) + 1);