交叉匯率 計算:如何用兩組貨幣對求出

2026年10月24日,USD/EUR 為 0.89342,USD/IDR 為 18,107.8,EUR/IDR 交叉匯率為 20,267.96。兩種貨幣都以美元報價時,它們之間的交叉匯率等於第二個報價除以第一個報價。

使用 API

透過美元把 EUR 換算成 IDR 時,EUR 是來源貨幣,IDR 是目標貨幣。用 GET /v1/fx/rates/USD?currencies=EUR,IDR 一次請求兩個美元報價。一次回應就給出除法所需的全部報價。

  1. 設定你的 API 金鑰 取得免費 API 金鑰,並放進環境變數 NARWHAL_API_KEY。Python 腳本會讀取該變數,並在 Authorization 標頭中以 Bearer 權杖的形式傳送金鑰。REST 和 MCP 使用同一組金鑰。
  2. 取得報價並相除 腳本以 USD 為共同基準讀取 EUR 和 IDR 的報價,用 IDR 報價除以 EUR 報價,再直接請求 EUR/IDR 作比較。先輸出的是計算出的交叉匯率,其次是直接匯率。
    Python,由兩個美元報價算出 EUR 兌 IDR
    import os
    import requests
    
    H = {"Authorization": f"Bearer {os.environ['NARWHAL_API_KEY']}"}
    rates = {
        r["currency"]: float(r["rate"])
        for r in requests.get(
            "https://api.narwhalapi.com/v1/fx/rates/USD",
            params={"currencies": "EUR,IDR"},
            headers=H,
            timeout=10,
        ).json()["rates"]
    }
    
    # USD/EUR = 0.89342 means 1 USD buys 0.89342 EUR;
    # USD/IDR = 18107.8 means 1 USD buys 18,107.8 IDR.
    eur_idr = rates["IDR"] / rates["EUR"]
    print(f"EUR/IDR = {rates['IDR']} / {rates['EUR']} = {eur_idr:.2f}")
    
    direct = float(
        requests.get(
            "https://api.narwhalapi.com/v1/fx/rates/EUR",
            params={"currencies": "IDR"},
            headers=H,
            timeout=10,
        ).json()["rates"][0]["rate"]
    )
    print(f"direct EUR/IDR = {direct}")
  3. 把匯率套用到你的金額 用 EUR 金額乘以計算出的 EUR/IDR 匯率,即可得到 IDR 金額。請在結果旁標明方向:EUR/IDR 匯率表示每 1 EUR 可兌換多少 IDR。把 IDR 換成 EUR 則使用倒數。

使用試算表或不寫程式的方式

把 USD/EUR 報價放在 B1,USD/IDR 報價放在 B2,再在另一個儲存格輸入公式。兩個輸入報價要取同一天的資料。公式用目標貨幣的美元報價除以來源貨幣的美元報價,因此儲存格位置很重要。

EUR 兌 IDR 交叉匯率
=B2/B1

為輸入儲存格加上含 USD 的完整貨幣對名稱作標籤,讓共同的基準一目了然。結果標為 EUR/IDR。如果在公式不變的情況下互換兩個輸入儲存格的內容,結果會變成倒數匯率,也就是 1 IDR 能換得的 EUR。

常見貨幣對可使用匯率頁面中的各貨幣頁面,這些頁面列出了常見貨幣對。如果你已有兩個美元報價,並想用這些特定輸入算出交叉匯率,試算表的方式就很合適。

各種情況適合的方式

情況最適合的方式原因
API 提供該貨幣對直接請求直接讀取該貨幣對,不用四捨五入後的報價去算交叉匯率
API 沒有該貨幣對,或需要歷史交叉匯率用同一天的美元報價相除共同的美元基準為計算提供來源貨幣和目標貨幣的報價
需要很多貨幣對只取一次美元報價,再計算交叉匯率每個來源貨幣與目標貨幣的組合都重複使用這些美元報價

用一組美元報價計算大量交叉匯率時,請在每個公式旁保留來源貨幣和目標貨幣的標籤。來源貨幣決定哪個報價放在分母,目標貨幣決定哪個報價放在分子。同一個美元報價在一次換算中可以當分子,在另一次換算中當分母。計算歷史交叉匯率時,要把日期連同輸入報價和結果一起保留。如果該貨幣對可以直接取得,而且只需要這一組,就以你要換出的貨幣為基準直接請求。

為什麼我算出的交叉匯率與直接匯率不同?

輸入報價的四捨五入以及時間戳記的差異,會讓算出的交叉匯率與直接匯率不同。交叉匯率的計算使用你提供的美元報價,因此它們的精度會帶入結果。直接讀取貨幣對得到的是直接報價,而不是由這些輸入推算出的值。

2026年10月23日,算出的 EUR/IDR 交叉匯率為 20,267.96,直接 EUR/IDR 匯率為 20,268.1,相差 0.14。這個差異來自美元報價的四捨五入。直接值不必與由四捨五入後的輸入算出的結果一致。

報價應該照哪個方向相除?

當兩個貨幣對的基準貨幣相同時,用目標報價除以來源報價。透過 USD 計算 EUR/IDR,就是每美元的 IDR 除以每美元的 EUR。共同的 USD 單位約去,剩下的單位是每 EUR 的 IDR。

2026年10月23日,USD/EUR 為 0.89342,因此 1 EUR 能換到比 1 USD 更多的 USD:1 EUR = 1/0.89342 = 1.119 USD。所以當天 EUR 能換到的 IDR 也比 USD 多。用 EUR 報價除以 IDR 報價會讓單位顛倒,得到的是每 IDR 的 EUR。

兩個報價需要同一天嗎?

需要,請使用同一天的報價,因為日期混用會給交叉匯率帶來雜訊。做歷史計算時,先為兩個美元貨幣對選定日期,再相除。結果透過當天的美元報價,把來源貨幣和目標貨幣連結起來。

如果你已有來源貨幣的美元報價,就與目標貨幣同一天的美元報價配對。不同日期的報價會改變計算的輸入。日期一致後,交叉匯率與直接報價不同的原因,就只剩上文所述的時間戳記和四捨五入差異。

計算範例:2026年10月23日 EUR 兌 IDR

2026年10月23日,美元報價為 0.89342 EUR 和 18,107.8 IDR。以 IDR 報價當分子、EUR 報價當分母,相除後得到每 EUR 的 IDR。

計算結果
2026年10月23日的 USD/EUR0.89342
2026年10月23日的 USD/IDR18,107.8
2026年10月23日的 EUR/IDR:18,107.8 / 0.8934220,267.96
以2026年10月23日交叉匯率計算 500 EUR:500 × 20,267.9610,133,980 IDR

以2026年10月23日的範例來看,用 500 EUR 乘以所示交叉匯率 20,267.96,得到 10,133,980 IDR。這個金額使用的是計算中顯示的四捨五入後交叉匯率。當天直接的 EUR/IDR 報價為 20,268.1,用它會得到不同的匯率。

發布於 。

後續步驟