Saving form data with currency symbols / validating custom formats

I'm trying to display a numeric attribute of a model as a currency on a
form, and then save the user's input. So the text field might display
'$9.98' and the user is allowed to enter dollar signs. How can I
remove the dollar sign before saving to the db and still display the
user's original input string in error messages?

My template file looks like this:

   <%= text_field("winning[]", "amount",
           :value => number_to_currency(@winning.amount) %>

I tried manually removing the dollar signs from the values in the
params hash before applying them to the models (via update_attributes)
but then the models don't have the user's original inputs, and I'm
using the error_messages_for tag to display the errors. I was also
trying to avoid hacking presentation format knowledge into the model
object if possible.

Any ideas?