Bitcoin doesn't use the concept of "balances" it uses transactions. A transaction consists of inputs and outputs.
The transaction amount is the total of all inputs. Each input in a transaction is spent in its entirety during the transaction. And the outputs can total any amount up to the total transaction amount. Any amount remaining (inputs - outputs) goes to the miner as a fee.
So a transaction might look like:
INPUTS:
25 BTC
50 BTC
OUTPUTS
40.2 BTC
34.7 BTC
So the 75 BTC total inputs, less 74.9 BTC total outputs means 0.1 BTC goes to the miner.
Now, at the protocol level, the 25 BTC amount is really 2,500,000,000 because each 1 BTC is actually 100,000,000 Satoshis.
So the 34.7 BTC output was really the number 3,470,000,000.
So there are no fractions. These are all integers.
When the client displays these numbers, it shows them in whatever units the client is configured to use (BTC, mBTC, uBTC).