Canceling you credit card is a bad idea. For at least below reasons.
- Losing the benefit of paying (actual money taken away from your account) later for at least 20+ days.
- Losing the x% of cash back from credit card company.
- Losing the opportunities to get good credit report (from the credit card company).
- For some cards, losing the extended warranty or other free coverage.
For anything you want to buy, ask yourself how often you are going to use it and consider below:
- What happens (what you'll lose) if you don't have the item.
- What happens (what you'll lose) if you lose the money (spent to buy the item).
Compare which one is more acceptable to you and make a decision.
If you simply cannot control yourself, you can simply remember NOT to bring any money/card when you go to the stores. Isn't this simple enough?