It's a wide-spread marketing technique that seems to have been around forever- selling products for £1.99, £9.99, £19.99, instead of £2, £10 and £20.
Presumably the pyschology is that submliminally £99.99 seems disproportionately closer to £99 (or £90) than £100 does.
But surely the technique is so utterly transparent and consumers so wary of marketing techniques nowadays that it is completely ineffective. And worse, by doing it, you risk detering potential customers by coming across as deceptive or dishonest.
$19.99 sounds cheaper than $20. Although most people can tell that they're pretty close, it's still a marketing strategy that some people fall for. The human brain will sometimes register $19.99 as $19, instead of $20.
Read some of these, they seem to be pretty reliable from my (little) marketing experience.
Fun fact: It doesn't matter in Canada anymore, $19.99 rounds up to $20 if you pay cash because of the removal of the penny.
I have a book somewhere (don't remember which, need to look it up) which explains that it's more important to have a short number, rather than low. $9.99 looks longer (larger) than $10. Then again, $10.00 looks larger than $9.99
The same book suggested a whole different approach: If you have a product of $10, introduce another product of -say- $12. Even if no one buys the new product, it makes the $10 look cheap. I took that advice and revenue shot up 20% or so. Amazing...
The psychology behind the $99 was explored in depth in Priceless: The Hidden Psychology of Value, which if you ask for my humble opinion, is a life-changing book.
A price such as $99, or $14.95 are known as charm price. Research suggests that the most effective charm price is that ending with 9. A University of Chicago/MIT research (Eric Anderson, Duncan Simester) with a mail order company yielded most sales when an item was priced $39 (despite $34 being cheaper!):
The obvious reason for the success of charm prices is mental rounding ($99 is in the 90s while $100 is in the 100s). But both strong proof to people's ability to grasp magnitude and the fact that more people bought the $39 product than the $34 one suggest that the mental rounding assumption is very partial, if not neglectable.
An alternative theory is that charm prices are seen by people as sale prices or a bargain (which does not suit all businesses, like luxury merchants; also such price can also be linked to hard-sale).
But studies into consumer choice and trade-off contrast seem to provide the most solid explanation, albeit a surprising one:
When there are many hard-to-evaluate options, attention wanders. It is drawn to easy comparisons, to options that are clearly superior to another, even if the difference is slight. The imagined round-number price becomes a foil for the 99-pence price, bathing it in an unaccountably alluring glow. (Priceless: The Hidden Psychology of Value, William Poundstone).
In other words, we see these prices as attractive because the brain finds it easy to see how they are cheaper from the round-number price.
I have a personal theory that digits with declining decimal values appear cheaper than .99. For example 9.87 is a better looking price than 9.99, not because there is a difference of 0.12 but because .87 gives you an impression that cost is going down while .99 shows the same and two highest integers together. Likewise 4.51 vs 4.43 feels soothing.
Out of my experience, I would suggest you not to use 9.99 or 99.99 prices ever. Give user a sense of "saving" or "not being 100". When price is 99.99, we know we will be paying exactly 100 as no one would return you 1C but if the price was 97.21 then you know its not 100 and rather you will be "saving" 3 dollar. I would also suggest you to use 97 instead of 98 because with 97 you project the feeling that price is 95ish and user would save 5ish dollars. With 98, you tend to think price is 100ish and sense of saving is reduced further.
Izhaki's answer pretty much covers everything related to the UX and psychology behind the x.99 pricing. But there's more -- the x.99 pricing is the key to a killer marketing strategy -- figures for discounts and offers are cleverly crafted numbers, which are almost always impossible to reach without buying one extra item. Why? Because discounts are offered on figures such that products total to prices always just a few cents shy of reaching the nearest amount for which a discount may be applicable!
Here's a real life example:
Products for which the above offer was applicable were all priced at 99.90, 199.95, 499.99, 999 etc. Even if the customer were to buy 20 items averaging 99.99 each, he'd only reach 1999.80, which isn't enough to get him the offer! And wallah! This necessitates the purchase of that one extra item (of whatever minimum cost possible), to make that discount figure!
Furthermore, even if the discount were applicable on a non-multiple of 10 figure, like:
the only way to attain this in a single shot would be a purchase an item priced at 999, 999.95, 999.99 etc. But of course, the sales team already knows this. And the nearest priced item one might find may be something like 995.95! You do the math! :)
As a side-note, if you consider products were to be priced at round numbers, such as 10 or 20, then to make the above strategy work, discounts would need to be targeted at figures like 1001, which would make the trick obvious! ;)
Here is a graph from the Wikipedia page of Psychological Pricing. It is self-explanatory.