You have an order where the value of products + shipping is 100.05 USD and you are using the currency format with "Number of decimal places" 0.
The client is displayed the price for total order 100 USD with no decimals so he will pay only 100 USD instead of 100.05 USD. Of course when you enter the payment in the payments tab of order you will enter 100 USD because this is the correct amount that the client payed for the order.
Now if you have a rule that "Check the order ballance" for "Balance is equal to 0 USD" it will fail because the order balance is in fact 0.05 USD which is greater than 0.01. So if you have, like me, a rule that should change the order status to anything (for example "Completed" or "Payment Received") on payment receive and the payment balance is 0 it will fail.
This can be fixed by making $balance in "function uc_payment_condition_order_balance" from uc_payments module use uc_currency_format for checking the balance.
Or maybe the output of uc_payment_balance() should be outputted trough uc_currency_format()?
I'm waiting for your suggestions in order to make a patch...