Fix different currency amount comparison inaccuracy.

Previously other amount is always exchanged to match self.
However, this can cause rounding down inaccuracy.
The fix chooses currency conversion direction that can avoid this.
That is, it chooses conversion rate that is greater than 1.