Why is it recommended to "not send round number amounts when making payments" for increased privacy?

I got this advice today to increase my Bitcoin privacy:

Do not send round number amounts when making payments (eg send 0.00104103 BTC, instead of 0.001 BTC)

Why do they say this? Why does the amount matter? And either way, it's not like I normally can "decide" how much the amount is, unless shuffling coins around my own wallets?

To understand why this is important, you need to understand how a bitcoin transaction is structured. Bitcoin uses an 'unspent transaction output' (UTXO) model, I would recommend reading through this question for more info on that.

So each transaction is composed of one or more inputs, and one or more outputs. As example, if you have a 0.50106550 BTC output, and you want to send someone a payment of 0.2 BTC, then your transaction may look like this (ignoring transaction fees, for simplicity):

`Inputs: (0.50106550 BTC) -> Outputs: (0.2 BTC) (0.30106550 BTC)`

Now consider what someone who is watching the blockchain can infer, just by looking at the amounts in this transaction. Knowing that the excess value from the input will be paid back to the user as a change output, it becomes fairly easy to infer which of the two outputs is the payment (0.2 BTC), and which is the change. This becomes even more clear when including transaction fees: the chance of ending up with a change output that has a small number of significant digits (ie, a round number) is very small! By making this inference, the observer can start to map out which outputs are owned by which user, and this is obviously not good for privacy.

On the other hand, consider the situation if the transaction is tweaked slightly, to remove the round number payment:

`Inputs: (0.50106550 BTC) -> Outputs: (0.20010852 BTC) (0.30095698 BTC)`

Now it is less clear which output is the payment, and which output is the change. As a consequence, it becomes more difficult for a third party observer to determine who owns each output from this transaction. Which one is the payment? Which one is the change? It is difficult to say, based on only the output values. Note that in this case the payment amount was increased by ~0.054%, which is relatively small.

Breaking heuristics like this represent a small gain in privacy, but it is a very simple and easy way to increase privacy nonetheless.