Decimals are just for displaying purpose.
The total number of assets is the only thing that matters.
On the chain level, the number of assets is always an integer.
So in both cases: total = 1000 when you create the ASA.
- If you choose decimals = 0, block explorers will show an amount of 1000 in total. A user with 5 tokens will be displayed as having a balance of 5.
- If you choose decimals = 3, block explorers will show an amount of 1 in total. A user with 5 tokens will be displayed as having a balance of 0.005.
I would recommend the second solution to match the draft ARC-0003: ARCs/arc-0003.md at main · algorandfoundation/ARCs · GitHub
Note however that this ARC is not final and may change.