There are many number format models in TO_CHAR.
The default 'TM9' format model however misses the possibility to add a leading 0.
Other models like 'FM99990D99' will give a trailing dot (or comma depending on nls). There is no simple way to get such numbers:
0.1234
0
17
987.01234
This would be how a human being would expect the numbers to be formatted.
I suggest to allow something like 'TM99990D99' as a number format model.