bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: locale-related printf bug when using formats with thousands grouping


From: Eric Blake
Subject: Re: locale-related printf bug when using formats with thousands grouping character
Date: Wed, 12 Jan 2011 06:52:52 -0700
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.13) Gecko/20101209 Fedora/3.1.7-0.35.b3pre.fc14 Lightning/1.0b3pre Mnenhy/0.8.3 Thunderbird/3.1.7

[adding bug-gnulib]

On 01/11/2011 08:40 PM, Andrew J. Schorr wrote:
> On Tue, Jan 11, 2011 at 10:31:26PM -0500, Andrew J. Schorr wrote:
>> Using gawk 3.1.8 on Fedora 13 64-bit linux, I see this:
>>
>> bash-4.1$ (echo 1000000; echo 999999.9998071828) | gawk -v "sq='" '{printf 
>> "%" sq ".2f\n", $1}'
>> 1,000,000.00
>> ,000,000.00
> 
> Actually, this may be a glibc bug:
> 
> bash-4.1$ printf "%'.2f\n" 999999.9998071828
> ,000,000.00
> 
> bash-4.1$ printf "%'.2f\n" 1000000
> 1,000,000.00

> bash-4.1$ rpm -q glibc
> glibc-2.12.1-4.x86_64

I concur, as running the same tests on both Solaris 10 and on Cygwin
1.7.7 under LC_ALL=en_US produced correct results.

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.

-- 
Eric Blake   address@hidden    +1-801-349-2682
Libvirt virtualization library http://libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]