Skip to content

Conversation

@henriquefreitas
Copy link

@henriquefreitas henriquefreitas commented May 22, 2020

O objetivo deste PR é estender a funcionalidade do método Number#number_cardinal, permitindo que seja retornada a descrição por extenso, de valores com até duas casas decimais, semelhante ao que acontece para o método Currency#currency_cardinal. O comportamento para números inteiros não foi alterado.
Segue exemplo de utilização:

  • BrazilianCardinality::Number.number_cardinal(24.36) # returns 'vinte e quatro vírgula trinta e seis'

@leandro
Copy link
Owner

leandro commented May 31, 2020

@henriquefreitas Muito obrigado pelo PR. É possível que você defina na descrição dele o intuito do mesmo?

@leandro
Copy link
Owner

leandro commented Jun 1, 2020

@henriquefreitas Muito obrigado. Agora, eu só estou pensativo sobre essa forma proposta por você de escrever a parte decimal por extenso. E nesse sentido eu gostaria que você lesse essa página que discorre sobre o assunto (e as formas de se escrever por extenso números decimais): https://professornews.com.br/index.php/component/content/article/181-dicas-de-redacao/5620-como-escrever-numeros-decimais-por-extenso

@henriquefreitas
Copy link
Author

@leandro de fato, a maneira como foi implementado, está mais para a forma popular, conforme indicado no link que você sugeriu. Para o caso de uso que estou utilizando a função, em específico, a forma popular é a mais adequada. Porém, concordo que pode não ser a mais útil a todos. Eu poderia contribuir implementando também a representação formal, deixando ao usuário a opção de escolher qual a forma que deseja utilizar (formal ou popular). Ou você acha que ficaria muito confuso? O que você sugere?

Copy link
Owner

@leandro leandro left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Beleza! Deixei alguns comentários pertinentes ao longo do código que você enviou.

"#{high_order_units} e #{number_cardinal(remainder)}"
end

def cardinal_for_fraction(fraction)
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Esse método está sendo utilizado em algum lugar? 🤔

assert_raises(BrazilianCardinality::Number::NumberTooBigError) { @klass.number_cardinal(1_000_000_000_000_000) }
end

def test_number_with_decimals
Copy link
Owner

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Acho que seria interessante incluir pelo menos um teste que contemple mais de um zero após a vírgula.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants