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.