"-" считается как символ, поэтому вам нужно использовать% 03d.
Я не верю, что это ошибка, поскольку заполнение 0 часто используется при работе с полями, которые имеют заданную длину, как в символах, так что если% 02d выдает число с 3 символами, небо может упасть.