数学汇率

Math exchange rates

目前我有一个汇率数据库,从 USD > Currency

+----------+---------+
| Currency | USDRate |
+----------+---------+
| USD      | 1.00    |
| GBP      | 0.7418  |
| SEK      | 8.29    |
+----------+---------+

我一直在做的简单数学是将 USD 转换为我网站上的另一种货币:

price * rate

但是如果我想将 GBP 转换为 USD,我试过以下操作:

price * (rate - 1 * rate)

应该是这么简单的数学,但它完全把我扔了。

此答案假设您有一个 table,其中有一列价格以一种货币表示,例如英镑,您希望将其转换为瑞典克朗,例如

prices
1.35
1.07
4.53
...

如果您想将英镑价格换算成瑞典克朗,您可以使用以下公式:

price * (1 / rate_GBP) * (rate_SEK) = price in SEK

要使用您的外汇 table,您可以加入价格 table 两次。这可以通过以下查询来实现:

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';

这里没有太多魔法;基本思路是将每个价格的源货币汇率和目标货币汇率放在一起,然后应用公式计算外汇。