Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problema com números fracionários #25

Closed
matheus-hertzog-deel opened this issue Feb 7, 2020 · 8 comments
Closed

Problema com números fracionários #25

matheus-hertzog-deel opened this issue Feb 7, 2020 · 8 comments

Comments

@matheus-hertzog-deel
Copy link

Os exemplos com números fracionários do README estão retornando Error: Invalid number

Os exemplos:

extenso('3.14') // 'três inteiros e quatorze centésimos'
extenso('3.14', { number: { decimal: 'formal' } }) // 'três inteiros e quatorze centésimos'
extenso('3.14', { number: { decimal: 'informal' } }) // 'três vírgula quatorze'

O erro:

webpack://extenso/./src/write-all.js?:56
    throw new Error('Invalid number');
    ^

Error: Invalid number
    at eval (webpack://extenso/./src/write-all.js?:56:11)
    at main (/home/matheus/test/random/index2.js:4:13)
    at Object.<anonymous> (/home/matheus/test/random/index2.js:8:1)
    at Module._compile (internal/modules/cjs/loader.js:955:30)
    at Object.Module._extensions..js (internal/modules/cjs/loader.js:991:10)
    at Module.load (internal/modules/cjs/loader.js:811:32)
    at Function.Module._load (internal/modules/cjs/loader.js:723:14)
    at Function.Module.runMain (internal/modules/cjs/loader.js:1043:10)
    at internal/main/run_main_module.js:17:11
@CaioCSdev
Copy link
Contributor

Same issue here:
the doc could be correct at least

@willianrod
Copy link

willianrod commented Apr 17, 2020

Mesmo problema aqui

Aparentemente você tem que passar o número com , por exemplo 3,14 como sugerido na documentação

Números envolvidos em strings deverão seguir o formato natural de escrita de números na língua portuguesa. Você pode usar - no início do número para representar a negatividade, . para representar a separção de milhares (isso é só para semântica e não causa efeitos no retorno) e , para reprentar a separação dos números inteiros e dos números decimais.

Sintaxe

@theuves
Copy link
Member

theuves commented Apr 27, 2020

@Matheusih, como o @willianrod disse (na versão 2.0.1) você deve passar , no lugar de ..

O @eliada abriu um PR #27 corrigindo o exemplo na documentação.

@theuves
Copy link
Member

theuves commented Apr 27, 2020

Devo confessar agora que está um pouco restritivo com essa opção, principalmente depois que comecei a internacionalizar a biblioteca adicionando suporte para Portugal, Moçambique, Angola, etc.

@theuves
Copy link
Member

theuves commented Apr 27, 2020

A questão é que o ponto (.) é usado aqui (no Brasil) como separdor de números maiores que mil (como formatador) e não como separador de inteiros e decimais.

Ex.: 1.000,00 = mil

Realmente isso pode causar um problemas no JavaScript se for passado o valor como float.

Talvez a gente deva rever as definições dos separadores com base na localização.

@amandio e @osvaldoM como é em Moçambique?

Vocês usam oficialmente ponto (.) ou vírgula (,) para separar decimais?

@osvaldoM
Copy link
Contributor

Ao inserir valores, em Moçambique usamos tanto o ponto como a vírgula(
intercambiavelmente) para separar números inteiros e decimais.

Talvez a gente deva rever as definições dos separadores com base na localização.

Não tenho certeza se esta seria uma opção razoável. Mesmo que a pessoa esteja no Brazil, dependendo das configurações do computador(O meu computador por ex. está em inglês), o browser pode usar o ponto(.) como separador de inteiros e decimais.(veja: https://stackoverflow.com/a/13416324/4043487)

@theuves
Copy link
Member

theuves commented Jun 19, 2020

Adicionei na PR #31 a opção de escolher qual separador decimal será usado (consequentemente qual será o separador de milhar).

Passou a ser aceito também números decimais do JavaScript (floats).

@neuberoliveira
Copy link

me corrijam se estiver errado, mas essa PR ainda nao foi para o npm certo?

ultima versao 2.01
https://github.com/portujs/extenso.js/blob/2.0.1/src/write-all.js#L75

master
https://github.com/portujs/extenso.js/blob/master/src/write-all.js#L73

e nao tem previsao para esse fix subir nao??

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

No branches or pull requests

6 participants