the "general" floating point format

Anthony Shipman als@iinet.net.au
Mon Jan 2 06:39:00 GMT 2006


On Mon, 2 Jan 2006 02:48 pm, Ian Lance Taylor wrote:
> Anthony Shipman <als@iinet.net.au> writes:
> > Is there a precise specification of how printf() decides whether to use
> > the fixed point or scientific format when the format is "general"?
>
> I assume you are referring to %g.  The answer is yes.  From the
> GNU/Linux man page, for example (man 3 printf):
>
>     The double argument is converted in style f or e (or F or E for G
>     conversions).  The precision specifies the number of significant
>     digits.  If the precision is missing, 6 digits are given; if the
>     precision is zero, it is treated as 1.  Style e is used if the
>     exponent from its conversion is less than -4 or greater than or
>     equal to the precision.  Trailing zeros are removed from the
>     fractional part of the result; a decimal point appears only if it
>     is followed by at least one digit.
>
> Ian

Oh, I missed that bit in the middle. Is that the C standard or just how Gnu C 
does it? 

Do you know if libstdc++ uses exactly the same specification or perhaps 
delegates to printf()? (I started off searching for how the C++ "general" 
format was defined).

-- 
Anthony Shipman                    Mamas don't let your babies 
als@iinet.net.au                   grow up to be outsourced.



More information about the Gcc-help mailing list