ForHosting KIT · Math

Portuguese number to words

21 is written vinte e um: the converter spells whole numbers from 0 to 999999 in Portuguese, placing the linking e where it belongs and choosing correctly between cem and cento. Free in your browser.

  • Free
  • Runs in your browser
  • No sign-up
  • Your data stays on your device
Use it from WebAPIEmailTelegramApp soon
If you enter
N
21
You get
Language
pt
Words
vinte e um

Integer 0..999999 to Portuguese cardinals (e-linking). Search intent: number to words portuguese. No network calls or random seeds are required. Failed jobs are not billed.

How Portuguese writes its numbers

Unlike German or Italian, Portuguese keeps the parts of a number as separate words and ties them together with e. Tens and units are linked this way, so 21 becomes vinte e um, and the same e follows the hundreds and the thousands whenever more comes after them. The hundred has two forms: cem when it stands alone and cento when something follows it. The converter applies these rules to any whole number from 0 to 999999 and returns the full phrase, ready to paste into a letter, a form or an exercise sheet.

Where it is useful, and the mistakes it avoids

Numbers in words are common in formal Portuguese texts, contracts and school exercises, because a figure written in letters cannot be misread. Students learning the language and teachers preparing material can check a spelling in seconds instead of looking up each rule. The usual mistakes are dropping the e between the parts, writing cem where cento is needed, and running the whole number together as one word. Since every result comes from the same fixed rules, a number always returns the same wording.

Teaching

Pinned goldens.

When is it cem and when is it cento?

Cem is used only for one hundred standing alone. As soon as something follows, the hundred becomes cento and is linked to the rest with e, so the converter never writes cem in front of other words.

Where does the linking e go in a Portuguese number?

Between the parts of the number: between the ten and the unit, as in vinte e um, and after the hundreds and the thousands when more follows. Each part stays a separate word.

Which numbers can it spell in Portuguese?

Whole numbers from 0 to 999999. Decimals, negative numbers and larger values are not converted, so every result is a complete Portuguese cardinal number written in words within that range.

Is a thousand written um mil or just mil?

Just mil. The converter writes a single thousand as mil on its own and only puts the number of thousands in front when it is greater than one, as careful written Portuguese does.

Everything on this page is available programmatically. This section is for teams who want to wire it into their own systems; everyone else can just use the tool above.

POSThttps://api.kit.forhosting.com/math/number-to-words-pt

Prefer to automate it? One authenticated POST creates the task; the result comes back by webhook or a signed link. The same capability also runs here on the web, by email and from Telegram — and soon from our app too.

curl -X POST https://api.kit.forhosting.com/math/number-to-words-pt \
  -H "Authorization: Bearer $KIT_KEY" \
  -H "Content-Type: application/json" \
  -d '{"n":21}'
{
  "n": 21
}
{
  "task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
  "type": "math.number_to_words_pt",
  "status": "queued",
  "_links": {
    "result": "/tasks/tsk_…/result"
  }
}

The API is asynchronous: the call returns a task_id immediately and the result arrives by webhook. Polling is capped at 1 req/s per task.

Per request$0.002

Published price — no tokens, no invented credits. A failed task is never charged.

HTTPCodeMeaning
401unauthorizedMissing or invalid API key.
402insufficient_balanceYour balance doesn't cover the task price.
404unknown_typeThat task type doesn't exist.
429rate_limitedToo many requests. Use the webhook instead of polling.

The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON from spreadsheets, CMS hooks, automation, or teaching demos.

How it works

Integer 0..999999 to Portuguese cardinals (e-linking). vinte e um; cem vs cento. No network calls or random seeds are required. Failed jobs are not billed. No network calls or random seeds are required. Failed jobs are not billed. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON from spreadsheets, CMS hooks, automation, or teaching demos. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON from spreadsheets, CMS hooks, automation, or teaching demos.

Inputs, limits and rounding

Optional decimals use half-up once. Optional output fields are omitted, never null. No network calls or random seeds are required. Failed jobs are not billed. No network calls or random seeds are required. Provide required JSON fields with DOM-safe names. Invalid types raise invalid_input. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON from spreadsheets, CMS hooks, automation, or teaching demos. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON from spreadsheets, CMS hooks,

When to use it

Use when search intent matches. Integer 0..999999 to Portuguese cardinals (e-linking). EN-only delivery; Nitro hydrates locales. No network calls or random seeds are required. Failed jobs are not billed. No network calls or random seeds are required. Failed jobs are The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON from spreadsheets, CMS hooks, automation, or teaching demos. The calculator is free in the browser, deterministic, and identical on the API path. Inputs are validated before arithmetic so invalid payloads fail with invalid_input. Half-up rounding is applied once from raw IEEE values when decimals are requested. Use the same JSON from spreadsheets, CMS hooks, automation, or teaching demos.

Quick check

Free widget.

Automation

API same JSON.

Free?

Yes tier A.

Network?

No.

Bad input?

invalid_input.

API?

Yes.

Locales?

EN-only; Nitro hydrates.

Read the full KIT documentation →