In insurance law, there is a concept called "scrivener's error" which can be used to invalidate an obvious incorrection.
For example, if an insurance company agrees to sell you $10,000 if insurance for $x, and when you get your policy, it reads $100,000 for the same rate, the insurance company is not bound by the contract.
Obviously this is a different industry, but the point is that when there is an obvious and blatant error (which $0 for a hotel would certainly be), I would be shocked if the hotel would not prevail in court for not honoring it.
------------------
"I will not be pushed, filed, stamped, indexed, briefed, debriefed or numbered. My life is my own."