Portuguese flag

Why 'milhão', 'dúzia' and 'par' need 'de' before a noun

In English, million, dozen and hundred sit directly in front of a noun: two million people, a dozen eggs. Portuguese splits these words into two groups. Some behave like ordinary numbers and go straight before the noun, just as in English. Others are really nouns that happen to express a quantity. Words like milhão, bilhão, centena, dúzia and par have a plural form, carry their own gender and need de to link them to what they count: um milhão de pessoas, duas dúzias de ovos.

English speakers tend to drop the de and say dois milhões pessoas. They also mix up the contrast cases: mil (thousand) and cem (hundred) are true numbers. They never take de and never take um in front, so you say mil pessoas, not um mil pessoas.

Word list
milhãomA1 million um milhão de pessoas centenafA2 hundred uma centena de pessoas parmA2 pair um par de meias dúziafB1 dozen duas dúzias de ovos bilhãomB2 billion dois bilhões de reais mil milhõesB2 billion mil milhões de euros
How it works

Treat each of these words as a container, the way English treats a box of or a bag of. The pattern is: article or number + quantity noun + de + the thing counted. Because the quantity word is a noun, it becomes plural when there is more than one: milhão becomes milhões, dúzia becomes dúzias, par becomes pares.

It also keeps its own gender, whatever the noun after de is. Milhão is masculine, so it is dois milhões de pessoas, even though pessoas is feminine. Dúzia is feminine, so it is duas dúzias de ovos, even though ovos is masculine.

Compare the real numbers mil and cem. They go straight before the noun, like English numbers do.

A cidade tem dois milhões de habitantes e mil escolas.
(The city has two million inhabitants and a thousand schools.)
Só tenho cem reais na carteira.
(I only have a hundred reais in my wallet.)
The words
Very big numbers

Milhão needs um in front when you mean one million, and de before the noun. For a billion, Brazil uses bilhão and Portugal uses mil milhões. Both follow the same pattern. Even without a number in front, the plural still needs de: milhões de turistas.

Mais de um milhão de pessoas viram o jogo.
(More than a million people watched the game.)
O governo gastou dois bilhões de reais no projeto.
(The government spent two billion reais on the project.)
A nova ponte custou mil milhões de euros.
(The new bridge cost a billion euros.)
Approximate hundreds

Centena is a feminine noun meaning a group of about a hundred. Use it when you are estimating, and use cem for the exact number. Portuguese has similar nouns such as dezena (about ten) and milhar (about a thousand).

Havia uma centena de pessoas na praça.
(There were about a hundred people in the square.)
Everyday groups

Dúzia (dozen) and par (pair) are not big numbers, but they work exactly the same way. Watch out for English here: it says two dozen eggs with no plural, but Portuguese says duas dúzias de ovos.

Comprei duas dúzias de ovos.
(I bought two dozen eggs.)
Quero meia dúzia de pães, por favor.
(I'd like half a dozen bread rolls, please.)
Ela tem três pares de sapatos novos.
(She has three new pairs of shoes.)
Watch out

The de depends on the last word of the number. If the number ends in a noun like milhão or milhões, you need de. If other number words come after it, the last word is an ordinary number, so there is no de and the number agrees with the noun as usual. The one exception is e meio: it attaches to the noun, so dois milhões e meio de pessoas keeps the de.

A cidade tem um milhão e duzentas mil pessoas.
(The city has one million two hundred thousand people.)

Be careful with billions between countries. In Portugal, bilião means a million million (an English trillion), so a Portuguese speaker says mil milhões for an English billion. In Brazil, bilhão is the English billion.

Finally, remember the contrast with mil. It never takes um, and it does not normally take a plural in counting: dois mil reais, never dois mils.

Summary

If a quantity word has a plural and a gender of its own (milhão, bilhão, mil milhões, centena, dúzia, par), it is a noun. Put de before the thing you are counting and make the quantity word plural when there is more than one: dois milhões de pessoas, duas dúzias de ovos. True numbers like mil and cem go straight before the noun, with no de and no um.