Looplex Knowledge Base

Expanded number

O tube expandedNumber recebe um número real como parâmetro e devolve o número por extenso. Existem parâmetros para determinar a unidade de medida, condicionando a flexão de gênero (feminino/masculino) e de número (singular/plural).

Formato:

expandedNumber(real, numeroFixoDeDigitos)
expandedNumber(real, generoDaUnidade, nomeDaUnidade, numeroFixoDeDigitos)
expandedNumber(real, generoDaUnidade, nomeDaUnidade, generoDoDecimal, nomeDoDecimal, numeroFixoDeDigitos)

Parâmetros:

  • real: Valor a ser escrito por extenso
  • generoDaUnidade: Gênero da unidade de medida {"M", "F"}. Default: M
  • nomeDaUnidade: Nome da parte inteira da unidade de medida
  • generoDoDecimal: Gênero da parte decimal da unidade de medida {"M", "F"} Default: M
  • nomeDoDecimal: Nome da parte decimal da unidade de medida
  • numeroFixoDeDigitos: Número de casas decimais fixas. Opcional. Default: 2.

Na ausência do parâmetro de gênero, o default é masculino.

Vale salientar que tanto o nomeDaUnidade, quanto o nomeDoDecimal devem ser escritos no singular masculino e devem estar cadastrados na gramática do sistema. Do contrário, um erro será devolvido.

Retorno:

O retorno do tube expandedNumber é uma String que corresponderá ao número real escrito por extenso.

Exemplo:

1. <vigencia> = 18

print "O presente instrumento será vigente por " & <vigencia> & " " & "(" & expandedNumber(<vigencia>) &") meses."

Retorna O presente instrumento será vigente por 18 (dezoito) meses.

Utilização dos parâmetros:

generoDaUnidade: Este parâmetro determina a flexão de gênero do número. Vejamos:

<numero> = 22,0,
print expandedNumber(<numero>, "F") & "\b",
print expandedNumber(<numero>, "M") & "\b",
print expandedNumber(<numero>)

Retorno:
"vinte e duas"
"vinte e dois"
"vinte e dois"

Se o gênero não for especificado, a flexão se dará no masculino.

nomeDaUnidade: Este parâmetro define o print da unidade de medida utilizada. Deve estar escrito no singular masculino e constar no dicionário gramatical Looplex, caso contrário o parâmetro será ignorado. O termo passado como parâmetro será flexionado em número. Se não for indicado gênero, flexiona-se apenas em número.

<quantasDuzias> = 5,0
<quantosMetros> = 1,0,
print expandedNumber(<quantasDuzias>, "F", "dúzia") & "\b",
print expandedNumber(<quantosMetros>, "M", "metro") & "\b",

Retorno:
"cinco dúzias"
"um metro"

generoDoDecimal e nomeDoDecimal: Estes parâmetros funcionam tal qual os descritos acima. O nomeDoDecimal deve estar escrito no singular masculino e constar no dicionário gramatical Looplex, caso contrário será ignorado.

<distancia> = 12,5,
print expandedNumber(<distancia>, "M", "metro", "M", "centímetro") & "\b",

Retorno:
"doze metros e cinquenta centímetros"

numeroFixoDeDigitos: Este parâmetro define o número de casas decimais. Caso não seja preenchido, o número default é 2. Serve para ajustar a ordem de grandeza da diferença entre a unidade de medida e a unidade decimal especificada. No exemplo acima, em que tratamos de metros e centímetros, não foi preciso definir um parâmetro, pois a diferença da ordem de grandeza é 2 (1 metro = 10² centímetros), valor default do parâmetro. Já quando lidamos com as unidades quilo e grama, a ordem de grandeza é 3 (1 quilo = 10³ gramas), portanto devemos especificar o parâmetro numeroFixoDeDigitos. Vejamos:

<peso> = 22,7,
print expandedNumber(<peso>, "M", "quilo", "M", "grama", 3) & "\b"

Retorno: "vinte e dois quilos e setecentos gramas" Se o parâmetro não fosse especificado, o retorno seria "vinte e dois quilos e setenta gramas.

Edit this page on GitHub