C (clang), 129 123 121 120120 118 bytes (117115 + -lm
compiler flag)
f(n,b,l,i,y,z)double n,b,l,z;{for(i=log(n)/log(b);~i<l;n=fmod(n,z))z=pow(b,i),printf(".%d"+(!!~i--),y=n/z);puts("");}
7 88 10 bytes shaved off thanks to ceilingcat!