This week's book giveaway is in the OO, Patterns, UML and Refactoring forum. We're giving away four copies of Refactoring for Software Design Smells: Managing Technical Debt and have Girish Suryanarayana, Ganesh Samarthyam & Tushar Sharma on-line! See this thread for details.
Don't confuse how you store the data with how you display the data. The two concepts are independent. I don't think I would choose BigDecimal to store numbers which are restricted to being integers between 0 and 999; for one thing you aren't using anything after the decimal point so BigInteger would be more reasonable, and you aren't storing "big" integers so a plain old "int" value would be just fine.
As for displaying those values with leading zeroes, consider using a suitably-configured DecimalFormat object.