As an analogy:
Think of each transaction that you receive as being a single "coin" that contains an equivalent amount of a precious metal (gold?).
So if you receive 0.05 BTC, in this analogy you receive a single coin that contains 0.05 BTC worth of that precious metal.
When creating a transaction, you melt together enough of these "coins" that you hold, and recast a new "coin" for the person you are paying that contains exactly the amount you intend to send. Then you cast the remainder of the melted "coins" into a "coin" as "change" that you keep.
Now, imagine your wallet has a handful of these "coins" from previous transactions that you've received:
- 1 "coin" with 0.5 BTC of precious metal
- 1 "coin" with 0.6 BTC of precious metal
- 1 "coin" with 0.25 BTC of precious metal
- 1 "coin" with 0.8 BTC of precious metal
You need to send 1 BTC to a recipient.
Your wallet chooses some of these coins (let say the wallet you are using decides to choose the 0.8 BTC "coin" and the 0.5 BTC "coin"
The wallet melts them together and you now have 0.8 + 0.5 = 1.3 BTC of liquid metal. The wallet pours off 1 BTC worth of the metal into a new 1 BTC "coin" which you send off to the person that you are paying. Then it pours off the remaining 0.3 BTC of metal into a new "coin" that you keep in your wallet.
Your wallet now contains:
- 1 "coin" with 0.6 BTC of precious metal
- 1 "coin" with 0.25 BTC of precious metal
- 1 "coin" with 0.3 BTC of precious metal
If we assume that your recipient had previously created a brand new wallet and then received a single payment of 50 BTC from someone. Then he now has 2 "coins" in his wallet:
- 1 "coin" with 50 BTC of precious metal
- 1 "coin" with 1 BTC of precious metal
All of this melting and re-casting is permanently recorded in the blockchain. So by looking at the blockchain, anyone can see that the 0.8 BTC and the 0.5 BTC transaction that were recevied at your address were melted, and that 2 new coins were cast (one sending 1 BTC to the recipent's address and one sending 0.3 BTC to an address that your wallet happens to control).
Now your recipent is going to send 5 BTC to someone. There are two ways his wallet could choose to do it. Which method is used depends on the coin selection logic used in the wallet that he is using.
He could just melt down the 50 BTC "coin" and cast it into 2 separate "coins" (a 5 BTC "coin" and a 45 BTC "coin") sending the 5 BTC "coin" to his recipient and the 45 BTC "coin" to an address that his wallet controls. If his wallet does this, it will contain the following:
- 1 "coin" with 45 BTC of precious metal
- 1 "coin" with 1 BTC of precious metal (the coin that you sent him)
Alternatively, he could melt both the 50 BTC "coin" and the 1 BTC "coin" together and cast it into 2 separate "coins" (a 5 BTC "coin" and a 46 BTC "coin") sending the 5 BTC "coin" to his recipient and the 46 BTC "coin" to an address that his wallet controls. If his wallet does this, it will contain the following:
- 1 "coin" with 46 BTC of precious metal
With the first example, it is clear that "your coin" is still in the wallet of person that you sent it to.
With the second example, it is not possible to say with certainty how many of "your coin's" molecules made it into each of the newly cast coins. At best, we can assume that the liquid was evenly mixed before casting the new coins, meaning that 5 / 51 ~ 9.8% of your coin has been send to the second recipient, and 46 / 51 ~ 90.2% of your coin is still held by the person that you originally sent the 1 BTC to.
Now, stepping back from the analogy to real world...
Without the precious metal that needs to be melted, this is how bitcoin actually works. There isn't an "account" with a "balance", and there are no distinct unique "coin files" that can be tracked. Your wallet keeps track of individual transaction outputs. When you want to send bitcoins, your wallet combines one or more of those previously received outputs into a single transaction that blends together all the value. Then it re-assigns portions of that value to each new transaction output (including an output to send the "change" back to an address that your wallet controls).