GNU bug report logs - #7829
locale-related printf bug when using formats with thousands grouping character

Previous Next

Package: coreutils;

Reported by: Eric Blake <eblake <at> redhat.com>

Date: Wed, 12 Jan 2011 13:51:02 UTC

Severity: normal

Tags: fixed

Done: Assaf Gordon <assafgordon <at> gmail.com>

Bug is archived. No further changes may be made.

Full log


Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Eric Blake <eblake <at> redhat.com>
To: bug-coreutils <bug-coreutils <at> gnu.org>
Subject: Re: locale-related printf bug when using formats with thousands
	grouping character
Date: Wed, 12 Jan 2011 06:58:19 -0700
[Message part 1 (text/plain, inline)]
[redirecting to bug-coreutils]

On 01/12/2011 06:52 AM, Eric Blake wrote:
>> bash-4.1$ printf "%'.2f\n" 999999.9998071828
>> ,000,000.00
>>
> It appears that glibc fails to account for the fact that rounding may
> increase the number of result characters by 2 instead of 1 when %' is in
> effect (going from 999 to 1,000, at any power of 10*3).
> 
> Please file a glibc bug, and in the meantime, gnulib should consider
> modifying the printf-posix family of modules to work around this
> rounding bug.

Ouch - coreutils' printf is also affected:

$ /usr/bin/printf %\'.2f\\n 999.9998 999999.9998 1000000
1000.00
,000,000.00
1,000,000.00

At least printf(1) already uses the xprintf-posix module, so hopefully
this gets fixed once gnulib works around the glibc bug.

-- 
Eric Blake   eblake <at> redhat.com    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

[signature.asc (application/pgp-signature, attachment)]

This bug report was last modified 6 years and 220 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.