In apex, how would you set the value of a currency field with a formatted string? See the sample code:
String price = '$1,000.00';
MyObj__c obj = new MyObj__c();
// this line won't compile, so I've commented it out:
// obj.price__c = price;
// this line would generate a runtime error: 'Invalid Decimal'
obj.price__c = Decimal.valueOf(price);
However, on a standard layout, you can use dollar signs, commas, decimals, etc. with no problem. One approach is to strip the dollar signs and commas. This would work for US currency but not for all currencies, which would apply in multi currency orgs. Would you have to write a function to look at the user's currency setting and strip the invalid characters?
By the way, the string value is getting passed in via javascript, so it is not done through visualforce databinding.