the `lib/utils.parse_float` function almost does this.  this is a generally useful function, can we move to `lib/utils` and combine with `parse_float`?  I think parsing to an `float64` in all cases should be fine, if not we can add a `parse_float64`