Yes, width is the total width including decimal. You can always click on the command help when your cursor is on the command and it will explain the parameters.
The FloatToString will pad the left side with spaces, so sTemp will have a string length of 8 all the time, and if the number will be longer than that, I believe it fills sTemp with *****.
Is sTemp or the string length of your string table you are assigning sTemp to shorter than 8? That is the only thing I can see that will cause your error -23.