changed price and tax to nsdecimalnumber object to prevent rounding errors