Solucionado (ver solução)
Solucionado
(ver solução)
3
respostas

Decimais com vírgula em vez de ponto.

Olá galera!

No meu ambiente a altura é inserida e apresentada na tela com ponto (1.78 cms) ao invés de 1,78. Reparei que no ambiente do Professor funciona da mesma forma. Já me matei de procurar no google, mas sem sucesso. Tem a ver com as preferências locais da máquina d@ usuári@? Como podemos forçar que os decimais sejam apresentados com vírgula em vez de ponto?

Grato, José

3 respostas

Olá José tudo bem com você??

As casas decimais são utilizadas com pontos por conta da sintaxe ser escrita em inglês, e para eles é assim que se divide, diferentemente do que ocorre aqui com a gente.

Espero ter te ajudado e qualquer coisa é só perguntar aqui!

Olá Victor, tudo certo?

Então, no código javascript eu entendo que a convenção exija o uso de ponto ao invés do ponto e vírgula. Mas na hora de printar na tela ou consola do navegador ou quando o usuário insere dados em elementos , o Javascript não adequa vários formatos de representação (data, moeda, números float), conforme o locale seja en_US, en_UK, pt_BR ou pt_PT?

À semelhança do Java, não é possível forçar o programa a usar um LOCALE diferente do que o usuário tem definido no seu sistema, e assim printar os decimais com vírgula/ponto conforme o LOCALE definido?

Como parece indicar o atalho seguinte, nós programadores é que teremos que adequar a substituição de ponto para vírgula no interface com o usuário para LOCALEs latinos, correto? https://stackoverflow.com/questions/2085275/what-is-the-decimal-separator-symbol-in-javascript

Exemplos de impressão para o usuário de diferentes LOCALEs: https://www.techonthenet.com/js/number_tolocalestring.php

Grato, José

solução!

Humm entendi a sua questão agora. Sim...conforme os links que colocou são as melhores soluções para a situação mesmo. Você consegue utilizar

function parseLocalNum(num) {
    return +(num.replace(",", "."));
} 

ou

var totn_number = 123456.789;

console.log(totn_number.toLocaleString('en-US'));
console.log(totn_number.toLocaleString('en-IN'));
console.log(totn_number.toLocaleString('fr-FR'));

123,456.789
1,23,456.789
123 456,789

Obrigado pela ajuda =)

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software