[PATCH 2/3] Fix gcvt to always show 'ndigits' of precision
Corinna Vinschen
vinschen@redhat.com
Wed Dec 18 08:54:00 GMT 2019
On Dec 17 22:00, Keith Packard wrote:
> Leading zeros after the decimal point should not count
> towards the 'ndigits' limit.
>
> This makes gcvt match glibc and the posix gcvt man page.
>
> Signed-off-by: Keith Packard <keithp@keithp.com>
> ---
> newlib/libc/stdlib/ecvtbuf.c | 18 +++++++-----------
> 1 file changed, 7 insertions(+), 11 deletions(-)
>
> diff --git a/newlib/libc/stdlib/ecvtbuf.c b/newlib/libc/stdlib/ecvtbuf.c
> index 0a5d41a0f..8936363ce 100644
> --- a/newlib/libc/stdlib/ecvtbuf.c
> +++ b/newlib/libc/stdlib/ecvtbuf.c
> @@ -349,15 +349,10 @@ _gcvt (struct _reent *ptr,
> char *end;
> char *p;
>
> - if (invalue < 1.0)
> - {
> - /* what we want is ndigits after the point */
> - p = _dtoa_r (ptr, invalue, 3, ndigit, &decpt, &sign, &end);
> - }
> - else
> - {
> - p = _dtoa_r (ptr, invalue, 2, ndigit, &decpt, &sign, &end);
> - }
> + /* We always want ndigits of precision, even if that means printing
> + * a bunch of leading zeros for numbers < 1.0
> + */
> + p = _dtoa_r (invalue, 2, ndigit, &decpt, &sign, &end);
^^^^^
same here.
Corinna
--
Corinna Vinschen
Cygwin Maintainer
Red Hat
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 833 bytes
Desc: not available
URL: <http://sourceware.org/pipermail/newlib/attachments/20191218/aeb2be2d/attachment.sig>
More information about the Newlib
mailing list