direi che rimane buono il mio script, ma ho sostituito ereg_replace con str_replace che è molto più veloce. inoltre i numeri di valuta si scrivono nel db come decimal, che non effettua approssimazioni. per tornare poi la valuta con lo zero (che sul db non ci sarà perchè verrà comunque scritta con . e senza 0 dopo di esso) lo si può fare con number_format.