Hi @robertocook,
I've written quite extensively on using decimals in the RegEx section. Please check that out.
Also, I note from your code that you are actually using a FLOAT field and NOT a DECIMAL. I wouldn't really advise this as FLOATS are only really useful when calculating very precisely - for instance, scientific calculations where the number of digits past the point will probably change. This isn't really applicable to price since we don't use half or quarter-cent coins. E.g. you won't have a price such as $99.3333333, right?
Therefore, I would advise switching to decimal field type.
Hope it helps.
Gez