At a hotel, they'll give you a price in dollars and then convert that into pesos at the official rate. When you pay with a card, you'll pay that amount in pesos, but your card issuer will then convert that amount back to dollars at a rate closer to the unofficial "blue" rate. As a result, the actual dollar price to you will be less than the dollar price quoted by the hotel. Don't even think of using pesos to pay for hotels.