payment balance should be cast to float, not int, when checking if a contribution form should load
If the contribution form is loaded in "invoice" mode -- an existing contrib ID is passed to allow payment of the balance due -- there is a check to make sure there is actually a balance due. But that value is cast as an integer, which means if the balance due is less than 1, it fails the check. It should be cast as a float.
https://github.com/civicrm/civicrm-core/blob/master/CRM/Contribute/Form/Contribution/Main.php#L1475