Check your cards. I think Discover, Capital One, and Amex all currently offer at least some cards with no penalty for foreign exchange......
Many customers can be victims of their own emotions and many of these card companies know it. Here's the rub. If a card company actually gives you the best commercial exchange rate, they are probably losing money on the exchange. Despite the fees paid between correspondents to settle the exchange, they obviously have systems and accountants that are paid to get this done for you.
Some will, in fact, give you the best commercial exchange rate, but charge a fee each time for their effort. That fee really ticks some customers off.
Others will claim they have no fee. However, they bury it into the exchange rate you actually get. With it buried, its actually very easy for them to get more than the flat fee others charge. Exchange rates change so often and are so variable from the counter at the airport, to a local bank to an ATM, you would have to be a pretty sophisticated customer to know what they altered their real exchange rate by.
Ironically, the fee is usually much more transparent.
However, the real killers will charge the fee and mess with the exchange rate. If it has a "big bank" logo on it, I would be suspicious. Maybe that's just me.