目前我有一个汇率从美元>货币的数据库
+----------+---------+
| Currency | USDRate |
+----------+---------+
| USD | 1.00 |
| GBP | 0.7418 |
| SEK | 8.29 |
+----------+---------+
我一直在做的简单数学就是将USD兑换成我网站上的另一种货币:
price * rate
但是,如果我想做GBP到USD,我会尝试以下方法:
price * (rate - 1 * rate)
应该是这么简单的数学,但它完全抛弃了我。
这个答案假设你有一个表,一列货币,例如GBP,你要转换为SEK,例如
prices
1.35
1.07
4.53
...
如果您想将英镑价格转换为SEK,您可以使用以下公式:
price * (1 / rate_GBP) * (rate_SEK) = price in SEK
要使用您的外汇表,您可以将价格表加入两次。这可以通过以下查询来实现:
SELECT
p.prices AS orig_price_gbp,
p.prices * (1 / r1.USDRate) * (r2.USDRate)
FROM table_prices p
INNER JOIN rates r1
ON r1.Currency = 'GBP'
INNER JOIN rates r2
ON r2.Currency = 'SEK';
这里没什么魔力;基本思路是将每个价格的源汇率和目的地汇率一起使用,然后应用公式来做外汇。