Getting foreign currencies is a bit of a hassle. I'm from Germany (EUR), so this article is focused on how to get other currencies in Germany given that I have Euro.
Electronically
There are two ways to get foreign currencies if you are working with digital money: With credit cards or TransferWise.
For credit cards, I recommend N26 (see online banking). I've just been to Budapest and it worked like a charm. They sometimes had the price in EUR on the bill as well. Usually, it was something like 35 EUR on the bill, but the rate of N26 was so good that I only paid about 30 EUR.
If it is about transferring money, I've only used TransferWise so far. It was about transferring money to Nepal. My girlfriend also uses it to transfer money to Indonesia. So you can see that it is an option for rather exotic things. The website is super transparent and the fees seem reasonable. I'm unlikely to change the service for that reason.
Cash
Reisebank is for sure one of the biggest providers if you want to get foreign currency in cash in Germany.
Deutsche Bank seems to allow it as well, but only via phone?!? (source)
| Bank | 1000 USD in EUR | Additional Fees | Total Fee |
|---|---|---|---|
| (Google Website, 17 Dec, 21:30 UTC) | 881.34 Euro | - | - |
| Reisebank | 928.26 EUR | 10.75 EUR (you can go to one of their shops to avoid it) | 57.67 |
| VR-Bank -> Reisebank | - | - | |
| comdirect -> Reisebank | 929.15 EUR | 5.75 EUR | 53.56 |
| ING DiBa -> Reisebank | 928.26 EUR | 5.75 EUR | 52.67 |
| Travelex | 925.24 EUR | 8.50 EUR (Berlin, Hannover, Frankfurt for free) | 52.40 |
| Hypovereinsbank | 926.78 EUR | 0? | 45.44 |
If you really need cash, go to a Reisebank shop (e.g. Munich central station). If not, try N26.