Tanto nos preços dos livros quanto no valor Total aparecem com ponto ao invés de vírgula, como faço para alterar isso?
Tanto nos preços dos livros quanto no valor Total aparecem com ponto ao invés de vírgula, como faço para alterar isso?
Oi, Regina
Vc pode usar Intl.NumberFormat
Exemplo de uso:
const preco = 123.45;
// Formata número para o padrão Brasil
const formatoBR = new Intl.NumberFormat('pt-BR');
// Formata usando a configuração regional, estilo e moeda.
const formatoReal = new Intl.NumberFormat('pt-BR', {
style: 'currency',
currency: 'BRL',
});
console.log(`A versão formatada de ${preco} é ${formatoBR.format(preco)} ou ${formatoReal.format(preco)}`);
// A versão formatada de 123.45 é 123,45 ou R$ 123,45
// Insira no início do arquivo "js"
const formatoReal = new Intl.NumberFormat('pt-BR', {
style: 'currency',
currency: 'BRL',
});
/*
Na função "exibirOsLivrosNaTela"
altere a linha que mostra o preço do livro para:
<p class="livro__preco" id="preco">${formatoReal.format(livro.preco)}</p>
*/
Oi, Regina! Tudo bem?
Para alterarmos o ponto decimal utilizado nos preços para a vírgula, precisamos alterar a formatação dos números nas expressões que os definem.
No caso dos preços de cada livro, por exemplo, podemos alterar a tag <p class="livro__preco" id="preco">R$${livro.preco.toFixed(2)}</p>
no documento metodoForEach.js
pela tag abaixo:
<p class="livro__preco" id="preco">R$${livro.preco.toLocaleString('pt-BR', { minimumFractionDigits: 2 })}</p>
Dessa forma, alteraremos a expressão ${livro.preco.toFixed(2)}
, em que o método toFixed(2)
formata o número com duas casas decimais usando ponto como separador decimal, para uma expressão que utiliza o método toLocaleString()
, que ao receber 'pt-BR' como localização utiliza o separador decimal brasileiro, que é a vírgula.
Somado a isso, minimumFractionDigits: 2
define que sempre serão exibidas pelo menos duas casas decimais, preenchendo com zeros caso necessário.
A mesma lógica se aplica na exibição do valor total.
Espero ter ajudado! Caso tenha ficado alguma dúvida, sinta-se à vontade em comunicar, estou à disposição!
Um forte abraço e bons estudos!
Muito obrigada!
Testei as duas, mas só funcionou a do @Luis Dias.
A segunda sugestão, os livros somem!