Конвертер валют

Конвертируйте между основными мировыми валютами по справочным курсам.

Справочные курсы — не подходят для финансовых операций.

Курсы середины 2025 г. (база USD)

Конвертер валют позволяет переводить суммы между мировыми валютами по актуальным обменным курсам. Подходит для планирования международных поездок, трансграничных покупок, понимания иностранной зарплаты или управления бизнесом с доходами в нескольких валютах.

Выберите исходную и целевую валюты из выпадающих списков, введите сумму — конвертированное значение рассчитывается мгновенно. Курсы обновляются регулярно из надёжного финансового источника.

Обратите внимание: отображаемые курсы — это средние рыночные курсы (середина между курсами покупки и продажи). Банки, кредитные карты и обменные пункты обычно добавляют свою наценку, поэтому реальные расходы при обмене могут быть немного выше.

Часто задаваемые вопросы

Реализация кода

def convert_currency(amount, from_rate_to_usd, to_rate_to_usd):
    """
    Convert amount between two currencies via USD as the base.
    Rates are expressed as 'units per 1 USD'.
    e.g. EUR/USD = 0.92 means from_rate_to_usd=1 (USD), to_rate_to_usd=0.92 (EUR)
    """
    amount_in_usd = amount / from_rate_to_usd
    return amount_in_usd * to_rate_to_usd

def build_rate_table(rates_vs_usd: dict, base="USD"):
    """
    Build a cross-rate table from rates expressed against USD.
    rates_vs_usd: {"EUR": 0.92, "GBP": 0.79, "JPY": 150.5, ...}
    """
    if base != "USD":
        base_rate = rates_vs_usd[base]
        rates_vs_usd = {k: v / base_rate for k, v in rates_vs_usd.items()}
        rates_vs_usd["USD"] = 1 / base_rate

    def get_rate(from_ccy, to_ccy):
        return rates_vs_usd[to_ccy] / rates_vs_usd.get(from_ccy, 1)

    return get_rate

# Example rates (illustrative, not live)
rates = {"USD": 1.0, "EUR": 0.92, "GBP": 0.79, "JPY": 150.5, "CAD": 1.36}

get_rate = build_rate_table(rates)

amount = 1000  # USD
for ccy in ["EUR", "GBP", "JPY", "CAD"]:
    converted = amount * get_rate("USD", ccy)
    print(f"${amount} USD = {converted:,.2f} {ccy}  (rate: {get_rate('USD', ccy):.4f})")

# Round-trip check
print(f"\nRound-trip: $1000 USD -> EUR -> USD = ${1000 * get_rate('USD', 'EUR') * get_rate('EUR', 'USD'):.4f}")

Comments & Feedback

Comments are powered by Giscus. Sign in with GitHub to leave a comment.