My experience in many, many countries (as many as 60 countries per year before I retired) is that the simplest way of dealing with local currencies is to use an ATM to withdraw local money using my Canadian bank card.
When I say "bank card", I don't mean a credit card, I mean the same card that I use to withdraw cash from an ATM in my home country.
When you take local cash out of an ATM using your home country ATM card, you benefit from the best available exchange rate. There is often a fixed charge ($2 to $3) to make the ATM withdrawal, so I try to take out what I will need for the duration of my stay in that country in one transaction, rather than making multiple small withdrawals.
Before I leave the country, I try to use up any leftover local currency paying for my last restaurant meals or paying for a portion of my last hotel bill with the local currency.
I NEVER try to obtain local currency in a third country (meaning, not the destination country), or in my home country. The exchange rate for banknotes (paper currency in your hand) will always be worse than the exchange rate for an electronic transaction.
The only country in which I have ever been unable to withdraw local currency from an ATM was South Sudan, and that was due to US sanctions, not any lack of desire on the part of the South Sudanese banking system.
So, in response to the question that reda_travel_fanatic posed about Peru, the answer is to leave sufficient funds in your home bank account to enable you to withdraw Soles from a Peruvian ATM using your home country ATM card (something I have done before in Peru), and don't take out any more Soles than you think you will need for the duration of your visit in Peru. If you find yourself holding too many Soles at the end of your trip, try to exchange them for some other currency you need (the currency of the next country you will be visiting, or US$, Euro, etc. if that is your home currency) before you leave Peru.
Michael
|