Numbers: Overview

Numbers seem like they should be the easy part of a new language — they are just counting, after all. But Brazilian Portuguese has two traps that catch English speakers immediately, and both appear in the very first number you learn. The first is gender agreement: some numbers change shape depending on whether what you are counting is masculine or feminine. The second is punctuation that is backwards from English: Brazil uses a comma for the decimal point and a period for grouping thousands. This page maps out the whole numeral system and previews the detailed pages; master the two traps here and the rest is mostly vocabulary.

Trap 1: numbers that agree in gender

In English, "one," "two," and "two hundred" never change. In Brazilian Portuguese, three groups of numbers agree in gender with the noun they count: um/uma (one), dois/duas (two), and the hundreds from 200 to 900 (duzentos/duzentas, etc.). Every other number — três, quatro, cinco, ... cem, mil — is invariable.

MasculineFeminineMeaning
um livrouma casaone book / one house
dois carrosduas mesastwo cars / two tables
duzentos reaisduzentas pessoas200 reais / 200 people
trezentos alunostrezentas alunas300 (male) students / 300 (female) students

✅ Tenho um irmão e uma irmã.

I have one brother and one sister.

✅ Comprei dois pães e duas garrafas de água.

I bought two bread rolls and two bottles of water.

✅ Havia duzentas pessoas na fila do show.

There were two hundred people in line for the concert.

💡
The agreement is "sticky": it stays even inside a bigger number. Trezentas e vinte e uma páginas (321 pages, feminine) keeps the feminine on both the hundreds and the final um → uma. So 21, 31, ... 91 and 200–900 all flex when the noun is feminine.

Watch the compound numbers especially. Vinte e uma horas (twenty-one hours), trinta e duas semanas (thirty-two weeks) — the trailing um/dois agrees even though it is buried in the number.

✅ O projeto durou trinta e duas semanas e custou duzentos mil reais.

The project lasted thirty-two weeks and cost two hundred thousand reais.

Trap 2: the comma and the period are swapped

This is the one that causes real-world mistakes — on invoices, in recipes, in spreadsheets. Brazil (like most of continental Europe) uses:

  • a comma (,) as the decimal separator
  • a period (.) as the thousands separator

So the number an American writes as 1,234.56 is written in Brazil as 1.234,56. The roles of the two marks are exactly reversed.

ValueEnglish (US)Brazilian Portuguese
one and a half1.51,5
three thousand3,0003.000
twelve thousand five hundred12,50012.500
one thousand two hundred thirty-four point fifty-six1,234.561.234,56
price in reaisR$ 1,999.90R$ 1.999,90

✅ O notebook custa R$ 3.499,90 à vista.

The laptop costs R$ 3,499.90 paid in full.

✅ A receita pede 1,5 litro de leite e meio quilo de farinha.

The recipe calls for 1.5 liters of milk and half a kilo of flour.

💡
Read the comma aloud as "vírgula." Três vírgula cinco = 3,5 = "three point five." If you ever see "R$ 1.000" thinking it's one with three decimal places, stop — that period is a thousands separator, so it means one thousand reais.

How numbers are read: the linking "e"

Brazilian Portuguese glues the parts of a number together with e ("and"). The pattern is: hundreds e tens e units. English drops most of these "and"s ("one hundred twenty-three"); Portuguese keeps them.

NumberBrazilian Portuguese
123cento e vinte e três
247duzentos e quarenta e sete
1.999mil novecentos e noventa e nove
2.025dois mil e vinte e cinco

✅ O livro tem cento e vinte e três páginas.

The book has one hundred twenty-three pages.

✅ Estamos em dois mil e vinte e cinco.

We are in two thousand twenty-five.

Two reading details worth flagging now: 100 alone is cem, but 101–199 use cento (cento e um, cento e cinquenta); and the e placement after thousands has its own rhythm (dois mil e vinte but dois mil duzentos e dez). The full rules live on numbers/cardinal-100-plus.

Cardinals vs ordinals

Cardinals count (um, dois, três — one, two, three). Ordinals rank (primeiro, segundo, terceiro — first, second, third). A key difference from English: Portuguese ordinals agree in gender and number, just like adjectiveso primeiro dia (the first day), a primeira vez (the first time), os primeiros dias (the first days).

CardinalOrdinal (m.)Ordinal (f.)
umprimeiroprimeira
doissegundosegunda
trêsterceiroterceira

✅ É a primeira vez que venho ao Brasil.

It's the first time I've come to Brazil.

✅ Ele ficou em segundo lugar na corrida.

He came in second place in the race.

In everyday speech Brazilians often replace higher ordinals with cardinals: o décimo quinto andar (the fifteenth floor) is fine, but for dates and large rankings people commonly say the cardinal — dia quinze (the fifteenth, i.e. day fifteen). The full set is on numbers/ordinal-numbers.

The number words at a glance

Here is the skeleton you will flesh out on the detail pages:

RangeWords
0–10zero, um, dois, três, quatro, cinco, seis, sete, oito, nove, dez
tensdez, vinte, trinta, quarenta, cinquenta, sessenta, setenta, oitenta, noventa
hundredscem/cento, duzentos, trezentos, quatrocentos, quinhentos, seiscentos, setecentos, oitocentos, novecentos
bigmil (thousand), milhão (million), bilhão (billion)

Note that cinquenta (fifty) no longer takes a trema (it used to be cinqüenta before the spelling reform), and milhão/bilhão are nouns that take de before a counted noun — um milhão de habitantes (a million inhabitants).

✅ São Paulo tem mais de doze milhões de habitantes.

São Paulo has more than twelve million inhabitants.

Common Mistakes

❌ Comprei dois canetas azuis.

Incorrect — caneta is feminine, so 'two' must be duas.

✅ Comprei duas canetas azuis.

I bought two blue pens.

❌ Vieram duzentos pessoas à festa.

Incorrect — pessoa is feminine, so the hundred agrees: duzentas.

✅ Vieram duzentas pessoas à festa.

Two hundred people came to the party.

❌ O carro custa R$ 45,000.

Incorrect — in Brazil the comma is the decimal mark; this reads as forty-five reais. Use a period for thousands: R$ 45.000.

✅ O carro custa R$ 45.000,00.

The car costs R$ 45,000.00.

❌ A garrafa tem 1.5 litro.

Incorrect — the decimal separator is a comma: 1,5 litro.

✅ A garrafa tem 1,5 litro.

The bottle holds 1.5 liters.

❌ Tem cento vinte e três alunos na escola.

Incorrect — the linking 'e' is required between the parts: cento e vinte e três.

✅ Tem cento e vinte e três alunos na escola.

There are one hundred twenty-three students at the school.

Key takeaways

  • um/uma, dois/duas, and the hundreds 200–900 agree in gender; everything else is invariable.
  • Agreement is sticky inside compounds: trinta e duas semanas, trezentas e uma páginas.
  • Punctuation is reversed: comma = decimal (1,5), period = thousands (1.000), so R$ 1.234,56 = 1,234.56.
  • Link the parts with e: cento e vinte e três.
  • Ordinals agree like adjectives (primeiro/primeira); milhão/bilhão take de before the noun.

Now practice Portuguese

Reading grammar gets you part of the way. The exercises are where it sticks — free, no signup needed.

Start learning Portuguese

Related Topics

  • Cardinal Numbers 1-100A1How to count from zero to one hundred in Brazilian Portuguese, including the gendered forms um/uma and dois/duas and the role of 'e'.
  • Cardinal Numbers 100+A1Counting from one hundred upward in Brazilian Portuguese: cem vs cento, the gendered hundreds, invariable mil, milhão/bilhão with 'de', and the rules for 'e'.
  • Ordinal Numbers (First, Second, Third)A2Brazilian Portuguese ordinals from primeiro to milésimo: how they agree in gender and number, how they abbreviate, and why Brazilians switch to cardinals above tenth.
  • Fractions and DecimalsB1How to say fractions and decimals in Brazilian Portuguese: ordinal denominators, the '-avos' suffix, meio vs metade, and reading the decimal comma as 'vírgula'.
  • Numerals as DeterminersA1Numbers used to determine nouns — why most cardinals are invariable but 'um/uma', 'dois/duas' (and the hundreds) agree in gender, how ordinals sit before the noun, and the gender of 'meio/meia'.