If you are bringing canadian dollars you can visit Scotia Bank in diferent parts of the country. You will get got exchange rate for your dollars.
If you are bringing US dollars you can visit BAC San Jose all throught the country.
Banks give you the best exchange rate. The worst exchange rate is the airport exchange office, then the next are the hotels and restaurants. So it is better to pay in cash of by credit card, but paying at the price that the items are charged, in local or foreign currency, so that you do not loose on the exchange rate. Always make sure to ask about the rate that establishments exchange your money.