Fix issues caused by float imprecision

Because, e.g., `8.21.to_d != 8.21`

This was causing `validate_authorization` to fail for certain numbers because it didn't think enough funds were available.