Numbers in words

Integers written out in Brazilian Portuguese (por extenso).

  • Parity matrix

Write out in words

Writes an integer in Brazilian Portuguese cardinal words ("por extenso"): for example, 1235 is "mil duzentos e trinta e cinco".

  • Accepts integers from -999 999 999 999 999 to 999 999 999 999 999. The function truncates a non-integer toward zero and puts "menos" before a negative number.
  • options.gender ("masculine" by default, or "feminine") agrees "um/uma", "dois/duas" and the hundreds ("duzentos/duzentas") with the noun the number qualifies.
  • The last group takes an "e" before it only when it is below 100 or a round hundred: 1200 is "mil e duzentos" and 1100 is "mil e cem", while 1235 is "mil duzentos e trinta e cinco" and 1101 is "mil cento e um".
  • Returns an empty string for a value outside that range, not finite, or not a number.
  • Zero is "zero", and so is any value that truncates to 0 (-0.5, never "menos zero"). The result is always lower case.
  • With "feminine", only the thousands group and the last group change (2000 is "duas mil", 21 is "vinte e uma"). The multiplier of "milhão", "bilhão" and "trilhão" stays masculine (2 000 000 is "dois milhões").
ParameterTypeRequired
valuenumberyes
optionsConvertNumberToWordsOptionsno
options.genderNumberToWordsGenderno
returnsstring

Write an integer in Brazilian Portuguese cardinal words ("por extenso"): 1235 becomes "mil duzentos e trinta e cinco".

  • Options (ConvertNumberToWordsOptions): gender (default "masculine") agrees "um/dois" and the hundreds ("duzentos/duzentas") with the noun the number qualifies.
  • Accepts integers from -999999999999999 to 999999999999999 (999 trillion). A non-integer is truncated toward zero.
  • Returns "" for a value outside that range or not finite.
  • The last group takes an "e" before it only when it is below 100 or a round hundred: 1200 is "mil e duzentos" and 1100 is "mil e cem", while 1235 is "mil duzentos e trinta e cinco" and 1101 is "mil cento e um".
import { convertNumberToWords } from '@brazilian-utils/brazilian-utils';

convertNumberToWords(123); // "cento e vinte e três"
convertNumberToWords(1001); // "mil e um"
convertNumberToWords(2000000); // "dois milhões"
convertNumberToWords(-42); // "menos quarenta e dois"
convertNumberToWords(2, { gender: 'feminine' }); // "duas"
convertNumberToWords(12.9); // "doze" (truncated toward zero)
convertNumberToWords(NaN); // ""
Code: brazilian-utils/javascript
Try it with JavaScript convertNumberToWords
The inputs start with the first shared case. Change one to see the new result.

Runs @brazilian-utils/brazilian-utils 2.5.0 in your browser.

Shared test cases (25) and the result in each library number.convertToWords

Official sources

No official source is listed yet.

See also Currency (BRL)

Last updated on

On this page