giggle
I was affraid of that.
You had strings in there before, then changed the column type to something that cannot contain that '$' sign. Consequently the database defaulted to the next best thing, a zero.
When you've restored the backup, run a query on that table to remove everything that's not a number or a decimal point.
Floats only look like this: 34576.6765
Then the column contains only things that could be floats, and it's safe to do the transition.
Ofcourse it may be a good idea to make a new table to test it with, that's easier to restore than the whole database :-)