1/6

A balance is never a float. f64 cannot represent 0.1 exactly, so arithmetic accumulates error — and in a ledger, error means money that does not reconcile.

0.1f64 + 0.2f64 == 0.3     // false

The universal answer is fixed point: store the smallest indivisible unit as an integer. Stellar counts stroops, at 10_000_000 per XLM. Most currencies count cents. There is no rounding, because there is nothing to round.