I just came back from Russia 2 days ago where it is illegal to pay with dollar or euros and rubles is the only currency accepted. It is curious, that Marriott still quotes their rates in USD dollars on its web site while local currency is used for other more flexible countries like Denmark. Most hotels in Russia use an "equivalent unit" to show their prices which is now valued at 30 (basically an average of the dollar at 26 and the euro at 34). Then, they convert the services or products provided into rubles by multiplying by 30. In your case, you should be able to pay your bill at a fair exchange rate below 30 so you certainly should complain. Using a credit card will give you better documentation to do so.