---
epic: 3
story: 3.5
title: "Multi-Currency Arithmetic"
status: draft
---

## Epic 3 — Currency & Cryptocurrency
**Goal:** Real-time and historical currency conversion with 180+ fiat and 50+ crypto.

### Story 3.5: Multi-Currency Arithmetic

As a CalcPad user,
I want to add and subtract amounts in different currencies within a single expression,
So that I can calculate totals across currencies without manual conversions.

**Acceptance Criteria:**

**Given** the expression `$20 + €15 + £10 in BRL`
**When** the engine evaluates it
**Then** each amount is converted to BRL using current rates
**And** the results are summed to produce a single BRL total

**Given** the expression `$100 - €30`
**When** the engine evaluates it
**Then** `€30` is converted to USD (the currency of the left-hand operand)
**And** the result is expressed in USD

**Given** the expression `$50 + $30`
**When** the engine evaluates it
**Then** no conversion is needed (same currency)
**And** the result is `$80`

**Given** the expression `$20 + €15 + £10` with no explicit target currency
**When** the engine evaluates it
**Then** all amounts are converted to the currency of the first operand (USD)
**And** the result is expressed in USD

**Given** the expression `$20 * €15`
**When** the engine evaluates it
**Then** it returns a `CalcResult::Error` because multiplying two currency values is not meaningful
**And** the error message is descriptive

**Given** the expression `($100 + €50) * 2 in GBP`
**When** the engine evaluates it
**Then** the addition is performed first (converting EUR to USD), then multiplied by 2, then converted to GBP
**And** the result is a single GBP value
