That exchange rate issue is a good observation, so let’s dissect it…
First, I think intent matters. Ending up with non-round numbers in some currencies merely because that’s how the exchange rate math works out is ethically neutral. Deliberately choosing non-round numbers in order to manipulate people is not. I don’t think the former is selfish at all, but for the sake of argument, is it not better to be “selfish” by being honest with as many people as feasible, than to be “unselfish” by manipulating everyone equally?
Either way, as you say, getting non-round numbers out of currency conversion is unavoidable. At least, it is unavoidable if that’s the only thing determining foreign prices.
Which leads to the second point: I don’t think pure currency conversion is actually how they get prices in other currencies. In fact, that can’t be the method if Jon was correct in stating that other currencies will have the equivalent of 99 cent pricing. With pure currency conversion, the local version of 99 cents would happen only by coincidence, just like round units. And even when it did happen, it wouldn’t happen for every currency simultaneously.
Example: My hypothetical $70 product is – by pure exchange rate – €62.52, 4308.85 Rubles, 466.49 Kroner, or 1046.16 Pesos. Dropping it to $69.99 doesn’t magically end up with the equivalent elsewhere. It becomes €62.51, 4308.23 Rubles, 466.42 Kroner, and 1046.01 Pesos. Not a single one of these is the local version of 99 cent pricing, so if Marketplace is to have that in each currency, the resulting price must be modified further.
In order to get any currency to its version of 99 cents, by definition you first have to know which round number in that currency you want it to be below. Then you go out of your way to do the analogue of subtract-a-penny. There are various ways you could get the round numbers (including picking them arbitrarily), but however you get to them, this means that there’s absolutely no reason we couldn’t have round numbers across the board. You simply stop before the last step.
Based on my example, under the new system the price would most likely be rounded to something like €63 before becoming €62.99. There’s no reason you couldn’t just stop once you get €63. Yes, €63 is more than €62.51, but so is €62.99. If that’s a problem, though, it’s not strictly necessary to round after applying the exchange rate … you could just truncate instead to get an integer. Thus you take €62.51 and get €62 (or €61.99). You probably want the system to have a minimum price, though.
So I don’t think this is actually an issue. Even if it were an issue, though, getting one price to be reasonable is better than zero prices IMO.