# Mathematica, 54 bytes

    #~NumberDecompose~{100,50,20,10,5,2,1,.25,.1,.05,.01}&

input
>[44.75]

output
>{0, 0, 2, 0, 0, 2, 0, 3, 0, 0, 0.}

<br>

# Mathematica, 82 bytes --WITH BONUS--

    (s=#~NumberDecompose~#2;Row@Flatten@Table[Table[#2[[i]]"+",s[[i]]],{i,Length@s}])&

**Input**
>[37.6, {15, 7, 2.5, 1, 0.88, 0.2, 0.01}]

**output**
>15 +15 +7 +0.2 +0.2 +0.2 +