in passato ho avuto problemi simili, e mi e' stato consigliato di utilizzare il tipo dato currency.

il tipo float e' un campo a virgola mobile che comporta differenze di arrotondamento.

prova anche ad usare il debugger