Extending NumberForm

I’d like to define a function, call it NumberF, that takes a real number n and two naturals l and r so that NumberF[n,l,r] yields the real number n with l and r zeroes on the left and right of the number respectively, where the right one are within decimal places. For example,

NumberF[10,0,1] == 10.0 NumberF[10,1,3] == 010.000 NumberF[10,3,0] == 00010 NumberF[3.45,4,2] == 00003.4500 NumberF[1003.400405,2,3] == 001003.400405000 

The output could be a string. I know about NumberForm, which does part of it, as well as IntegerString. I might be able to do it by combining both, but I was wondering if there is a better way of doing this. Any ideas?