I can't give a number which is < 10 a precision. Is there a good reason for this
or is this a bug?
eg.
writefln("number = %.8x", cast(ulong)10);
will display
0000000a
but
writefln("number = %.8x", cast(ulong)9);
will display
9
Why is the precision ignored in this case?
printf does not work this way. It will correctly display 00000009