CA$

CAD — Canadian Dollar

fiat
ISO Code: CADNumeric: 124ISO minor unit: 2Region: Americas
🇨🇦

How to implement CAD safely

Canadian Dollar uses ISO 4217 alpha code CAD and numeric code 124.

CAD appears in the current ISO 4217 list published 2026-09-17. CAD has ISO minor unit 2, so one major unit divides into 100 minor units. Configure Intl.NumberFormat with currency: "CAD"; do not hardcode the symbol or assume every currency uses two decimals.

CA$ is the disambiguated symbol used by this directory, while $ is common in the currency's home market. Store CAD alongside the amount so exports, payments, and accounting data remain unambiguous. Format for display only after choosing the user's locale, because symbol placement and separators belong to the locale rather than the currency record.

This site's coverage associates CAD with one country or territory: Canada (CA). Region and language still need separate locale selection; the currency code alone does not choose punctuation or digit shapes. The record was checked against the SIX ISO 4217 source on 2026-09-27; recheck status-sensitive records when the Maintenance Agency publishes a new list.

  • Status: active
  • Numeric code: 124
  • ISO minor unit: 2
  • Verified: 2026-09-27

Reviewed 19 July 2026. Sources: SIX ISO 4217 current list

Common mistakes with CAD

  • $ is also a symbol of USD, MXN, ARS, CLP, COP, CUP, SRD, HKD, TWD, SGD, AUD and NZD in this directory. Always pair it with the code CAD or a disambiguated symbol.
  • en-US shows CA$1.00 while en-CA shows $1.00. This directory uses CA$ to disambiguate; $ is the home-market symbol.
  • In en-CA the symbol goes immediately before the amount ($1,234,567.89). Let the locale place it rather than concatenating strings.

How to format CAD

Pass currency: 'CAD' to Intl.NumberFormat with the user's locale. Canada has two main locales, and they format the same amount differently: en-CA writes $1,234,567.89, and fr-CA writes 1 234 567,89 $, with the symbol after the number and a comma for decimals. Outside Canada, many locales print CA$.

en-CA vs fr-CA

new Intl.NumberFormat('en-CA', { style: 'currency', currency: 'CAD' }).format(1234567.89);
// → "$1,234,567.89"
new Intl.NumberFormat('fr-CA', { style: 'currency', currency: 'CAD' }).format(1234567.89);
// → "1 234 567,89 $"
new Intl.NumberFormat('en-CA', { style: 'currency', currency: 'CAD', currencySign: 'accounting' }).format(-1234.56);
// → "($1,234.56)"
new Intl.NumberFormat('fr-CA', { style: 'currency', currency: 'CAD', currencySign: 'accounting' }).format(-1234.56);
// → "(1 234,56 $)"
en-CAfr-CA
Decimal mark.,
Grouping,no-break space (U+00A0)
Symbol positionbeforeafter, with a no-break space

Bilingual products need both. Pick the locale from the user's language, not from the country.

CA$ vs $ vs US$

new Intl.NumberFormat('en-US', { style: 'currency', currency: 'CAD' }).format(1234.56); // → "CA$1,234.56"
new Intl.NumberFormat('en-CA', { style: 'currency', currency: 'CAD' }).format(1234.56); // → "$1,234.56"
new Intl.NumberFormat('en-CA', { style: 'currency', currency: 'USD' }).format(1234.56); // → "US$1,234.56"
new Intl.NumberFormat('fr-CA', { style: 'currency', currency: 'USD' }).format(1234.56); // → "1 234,56 $ US"
  • In Canada, the bare $ means CAD, and the US dollar gets US$ or $ US.
  • currencyDisplay: 'narrowSymbol' strips that marking (en-US CAD → "$1,234.56"). Don't use it where both currencies can appear.

Cash rounding to 5¢

The Royal Canadian Mint stopped distributing pennies on 4 February 2013. The cent is still Canada's smallest unit for pricing. When pennies aren't available, cash payments are rounded to the nearest five cents. Cheques and electronic payments (debit, credit and payment cards) are settled to the exact cent. Round only the final amount, after taxes. Individual items stay exact.

The Government of Canada guideline:

Final cash amount ends inRounded
1¢ or 2¢down, to the nearest 10¢
3¢ or 4¢up, to the nearest 5¢
6¢ or 7¢down, to the nearest 5¢
8¢ or 9¢up, to the nearest 10¢
0¢ or 5¢unchanged

In code, round integer cents, and only for cash:

const roundCashCents = (cents) => Math.round(cents / 5) * 5;
roundCashCents(492); // → 490
roundCashCents(103); // → 105
roundCashCents(108); // → 110

Q&A

How do I format CAD for French-speaking users?

Use fr-CA: 1 234 567,89 $. The comma marks decimals, and the symbol goes after the number.

Is the fr-CA thousands separator a narrow or a regular no-break space?

A regular no-break space, U+00A0, in current CLDR data for fr-CA and in Intl output. France (fr-FR) uses the narrow U+202F. Don't copy one into the other, and accept both (plus ordinary spaces) when parsing input.

How do I stop users confusing CAD with USD?

Show the ISO code (currencyDisplay: 'code' → CAD 1,234.56) wherever both currencies can appear, and store CAD with every amount.

Do I round CAD prices to 5¢?

Only cash payments, and only the final amount. Card and cheque payments use the exact cent.

Formatting Examples

Valueen-US
1CA$1.00
9.99CA$9.99
100CA$100.00
1234.56CA$1,234.56
1000000CA$1,000,000.00

Intl.NumberFormat

JavaScript
// Basic CAD formatting
new Intl.NumberFormat('en-US', {
  style: 'currency',
  currency: 'CAD',
}).format(1234.56);
// → "CA$1,234.56"

// Minimum/maximum fraction digits
new Intl.NumberFormat('en-US', {
  style: 'currency',
  currency: 'CAD',
  minimumFractionDigits: 2,
  maximumFractionDigits: 2,
}).format(99);
// Example display precision: 2 decimal places
// ISO 4217 minor unit: 2

// Integer minor-unit storage
// CAD amount = value × 100

Countries Using CAD