It's not C99, anyway; my copy of C99 makes no mention of it (the only
mention of %a is associated with gmtime.
hmm! weird. From printf(3):
a,A (C99; not in SUSv2) For a conversion, the double
argument is converted to hexadecimal notation (using the
letters abcdef) in the style [â€]0xh.hhhhp±d; for A
conversion the prefix 0X, the letters ABCDEF, and the
exponent separator P is used. There is one hexadecimal
digit before the decimal point, and the number of digits
after it is equal to the precision. The default
precision suffices for an exact representation of the
value if an exact representation in base 2 exists and
otherwise is sufficiently large to distinguish values of
type double. The digit before the decimal point is
unspecified for nonâ€normalized numbers, and nonzero but
otherwise unspecified for normalized numbers.
and looking at ISO/IEC 9899:1999 (E), it's on page 278, §7.19.6.1:
a,A
A double argument representing a floating-point number is
converted in the style [-]0xh.hhhh p±d, where there is one
hexadecimal digit (which is nonzero if the argument is a
normalized floating-point number and is otherwise unspecified)
before the decimal-point character235) and the number of
hexadecimal digits after it is equal to the precision; if the
precision is missing and FLT_RADIX is a power of 2, then the
precision is sufficient for an exact representation of the value;
if the precision is missing and FLT_RADIX is not a power of 2,
then the precision is sufficient to distinguish236) values of type
double, except that trailing zeros may be omitted; if the
precision is zero and the # flag is not specified, no decimalpoint
character appears. The letters abcdef are used for a conversion
and the letters ABCDEF for A conversion. The A conversion
specifier produces a number with X and P instead of x and p. The
exponent always contains at least one digit, and only as many more
digits as necessary to represent the decimal exponent of 2. If the
value is zero, the exponent is zero.
A double argument representing an infinity or NaN is converted in
the style of an f or F conversion specifier.
--
John Lenton (
[email protected]) -- Random fortune:
It seems intuitively obvious to me, which means that it might be wrong.
-- Chris Torek
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.2.5 (GNU/Linux)
iD8DBQFBPifjgPqu395ykGsRAiC9AKDHxzMZlIBagfhfd8x47MjMHQYjkwCeIeYY
Sb9juru++yV4/Oc0cAmyvus=
=DrCR
-----END PGP SIGNATURE-----