use decimal instead of float for expense types, since mysql float handling rounds very badly refs #3635