Fix lowestRate

The rates are strings, and JavaScript compares them character by character rather than numerically. So, e.g. '27.50' < '5.50'. This converts them to numbers before comparing so the actual lowest rate is returned.